@Override public void handleMessage(Message msg) { switch (msg.what) { /* Connect to the bus and start our service. */ case CONNECT: { // System.out.println("\n\n\n\n\n\n\nService is getting started!\n\n\n\n\n\n"); mBus = new BusAttachment(getPackageName(), BusAttachment.RemoteMessage.Receive); mBus.registerBusListener(new BusListener()); Status status = mBus.registerBusObject(mSimpleService, "/SimpleService"); logStatus("BusAttachment.registerBusObject()", status); if (status != Status.OK) { finish(); return; } status = mBus.connect(); logStatus("BusAttachment.connect()", status); if (status != Status.OK) { finish(); return; } Mutable.ShortValue contactPort = new Mutable.ShortValue(CONTACT_PORT); SessionOpts sessionOpts = new SessionOpts(); sessionOpts.traffic = SessionOpts.TRAFFIC_MESSAGES; sessionOpts.isMultipoint = false; sessionOpts.proximity = SessionOpts.PROXIMITY_ANY; sessionOpts.transports = SessionOpts.TRANSPORT_ANY; status = mBus.bindSessionPort( contactPort, sessionOpts, new SessionPortListener() { @Override public boolean acceptSessionJoiner( short sessionPort, String joiner, SessionOpts sessionOpts) { if (sessionPort == CONTACT_PORT) { return true; } else { return false; } } }); logStatus( String.format( "BusAttachment.bindSessionPort(%d, %s)", contactPort.value, sessionOpts.toString()), status); if (status != Status.OK) { finish(); return; } int flag = BusAttachment.ALLJOYN_REQUESTNAME_FLAG_REPLACE_EXISTING | BusAttachment.ALLJOYN_REQUESTNAME_FLAG_DO_NOT_QUEUE; status = mBus.requestName(SERVICE_NAME, flag); logStatus( String.format("BusAttachment.requestName(%s, 0x%08x)", SERVICE_NAME, flag), status); if (status == Status.OK) { status = mBus.advertiseName(SERVICE_NAME, SessionOpts.TRANSPORT_ANY); logStatus(String.format("BusAttachement.advertiseName(%s)", SERVICE_NAME), status); if (status != Status.OK) { status = mBus.releaseName(SERVICE_NAME); logStatus(String.format("BusAttachment.releaseName(%s)", SERVICE_NAME), status); finish(); return; } } break; } case DISCONNECT: { mBus.unregisterBusObject(mSimpleService); mBus.disconnect(); mClientBusHandler.getLooper().quit(); break; } default: break; } }