Android AllJoyn: Conexión con la segunda máquina da error de BusAttachement
He desarrollado la aplicación para dos sensores diferentes. Ellos están trabajando bien por separado, pero cuando intento usarlos togather y crear dos autobuses diffent que Alljoyn da esta excepción.
Org.alljoyn.services.common.BusAlreadyExistException: El objeto se ha configurado previamente con un BusAttachment.
- Appcelerator Hyperloop Android - Cómo utilizar ciertas funciones de Sensor Manager que utilizan una estructura de paso por referencia
- Android Solución para los sensores que no funcionan cuando la pantalla está desactivada
- Obtener información de los sensores magnéticos
- ¿Es posible calcular la velocidad al integrar los datos del acelerómetro en el tiempo?
- Extraer valor único del sensor sin utilizar un evento
A continuación se muestra mi código fuente para la conexión. ¿Puede alguien decirme por qué estoy teniendo este problema.
private void connect() { org.alljoyn.bus.alljoyn.DaemonInit.PrepareDaemon(getApplicationContext()); bus = new BusAttachment("ControlPanelBrowser", BusAttachment.RemoteMessage.Receive); bus.registerBusListener(new BusListener()); Status status = bus.registerBusObject(mControlPanelSignalInterface, Constants.SERVICE_PATH); if (status != Status.OK) { Log.d(TAG, "Problem while registering bus object"); } SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); srpPassword = settings.getString(PREFS_PASSWORD, DEFAULT_SECURED_SRP_PASSWORD); SrpAnonymousKeyListener authListener = new SrpAnonymousKeyListener(this, logger, AUTH_MECHANISMS); Status authStatus = bus.registerAuthListener(authListener.getAuthMechanismsAsString(), authListener, getKeyStoreFileName()); if ( authStatus != Status.OK ) { Log.e(TAG, "Failed to register AuthListener"); } status = bus.connect(); if (Status.OK == status){ String daemonName = Constants.DAEMON_NAME_PREFIX + ".ControlPanelBrowser.G" + bus.getGlobalGUIDString(); int flag = BusAttachment.ALLJOYN_REQUESTNAME_FLAG_DO_NOT_QUEUE; Status reqStatus = bus.requestName(daemonName, flag); if (reqStatus == Status.OK) { Status adStatus = bus.advertiseName(Constants.DAEMON_QUIET_PREFIX + daemonName, SessionOpts.TRANSPORT_ANY); if (adStatus != Status.OK){ bus.releaseName(daemonName); Log.e(TAG, "Failed to advertise daemon name: '" + daemonName + "', Error: '" + status + "'"); } else{ Log.d(TAG, "Succefully advertised daemon name: '" + daemonName + "'"); } } else { Log.e(TAG, "Failed to request daemon name: '" + daemonName + "', Error: '" + status + "'"); } } status = bus.registerSignalHandlers(mControlPanelSignalInterface); if (status != Status.OK) { Log.d(TAG, "Problem while registering signal handlers"); } // Initialize AboutService aboutClient = AboutServiceImpl.getInstance(); aboutClient.setLogger(logger); try { aboutClient.startAboutClient(bus); for (String iface : ANNOUNCE_IFACES) { aboutClient.addAnnouncementHandler(this, new String[] {iface}); } } catch (Exception e) { logger.error(TAG, "Unable to start AboutService, Error: " + e.getMessage()); } }
- Sensor de dirección Android
- Sensor de temperatura en Android
- Las velocidades de eventos de sensores "personalizadas" no parecen funcionar con SensorManager.registerListener (receptor SensorEventListener, Sensor sensor, tasa int)
- Cómo obtener la dirección de la brújula en Android
- Android: ¿Qué hilo llama .onSensorChanged?
- Inclinar una imagen en la titulación a cualquier ángulo
- ¿Cómo conseguir que la orientación del teléfono Android coincida con la orientación humana?
- Obtención del valor del sensor de luz
Use registerBusObject
twince y luego puede hacer un signo bus adjunto
¿Por qué no creas dos Interfaces, una interfaz para un sensor, respectivamente. A continuación, agregue estas dos interfaces en una clase que implemente estas dos interfaces y busObject y registre una implemntation de esta clase como BusObject.
Por ejemplo
Sensor1_interface.java and Sensor2_interface.java //are my two interface classes
Crear una nueva clase Sensor_InterfaceList que inplements las dos interfaces y el BusObject
class Sensor_InterfaceList implements Sensor1_interface,Sensor2_interface,BusObject { // implment your interfaces here ..... } private Sensor_InterfaceList mySensor_InterfaceList; mySensor_InterfaceList = new Sensor_InterfaceList(); myBus.registerBusObject(mySensor_InterfaceList,"/your/path");
Esto debería solucionar tu problema 🙂
- La diferencia entre los mensajes de emisión de GCM y PARSE
- Implementar la entrada de pago Stripe en la aplicación Cordova / Phonegap