Quellcode durchsuchen

Platform shutdown logic of jni library was modified and System.exit() was removed in BridgeService onDestroy().

Trishia vor 4 Jahren
Ursprung
Commit
7698de4f64

BIN
app/libs/iotivity-lite.jar


+ 11 - 2
app/src/main/java/org/iotivity/bridge/homeserver/BridgeServerActivity.java

@@ -153,8 +153,14 @@ public class BridgeServerActivity extends AppCompatActivity {
         }
 
         // Unbind Service
-        unbindService(localConn);
-        unbindService(remoteConn);
+        if(localBinder!=null) {
+            unbindService(localConn);
+            localBinder = null;
+        }
+        if(remoteBinder!=null) {
+            unbindService(remoteConn);
+            remoteBinder = null ;
+        }
         Log.d(TAG, "unbindServices()");
 
     }
@@ -200,6 +206,7 @@ public class BridgeServerActivity extends AppCompatActivity {
         @Override
         public void onServiceDisconnected(ComponentName name) {
 
+            Log.d(TAG, "onServiceDisconnected ComponentName=" + name + ", IBinder=" + remoteBinder.toString());
             remoteBinder = null;
             Toast.makeText(BridgeServerActivity.this, "Bridge Remote Service Disconnected",
                     Toast.LENGTH_SHORT).show();
@@ -228,6 +235,8 @@ public class BridgeServerActivity extends AppCompatActivity {
         @Override
         public void onServiceDisconnected(ComponentName name) {
 
+            Log.d(TAG, "onServiceDisconnected ComponentName=" + name + ", IBinder=" + localBinder.toString());
+
             localBinder = null;
             bridgeService = null;
             bridgeServer = null;

+ 15 - 13
app/src/main/java/org/iotivity/bridge/homeserver/BridgeService.java

@@ -693,18 +693,16 @@ public class BridgeService extends IntentService {
         // Bridge Service and Application Process Kill
         // android.os.Process.killProcess(Process.myPid());
         // or below action
-        Log.d(TAG, "System.exit() will be called");
-        System.runFinalizersOnExit(true);
-        System.exit(0);
+
+        // Log.d(TAG, "System.exit() will be called");
+        // System.runFinalizersOnExit(true);
+        // System.exit(0);
     }
 
     @Override
     public void onTaskRemoved(Intent rootIntent) {
         super.onTaskRemoved(rootIntent);
-
         Log.d(TAG, "onTaskRemoved()");
-
-        //this.restartServiceByAlarmManager();
     }
 
     @Override
@@ -716,7 +714,6 @@ public class BridgeService extends IntentService {
     @Override
     public boolean onUnbind(Intent intent) {
         Log.d(TAG, "Bridge Service onUnbind()");
-
         return super.onUnbind(intent);
     }
 
@@ -769,10 +766,11 @@ public class BridgeService extends IntentService {
         executorService.scheduleAtFixedRate(new Runnable() {
             @Override
             public void run() {
-                if(bridgeServer!=null) bridgeServer.loadPairwisedDeviceUUIDs();
-
-                Log.d(TAG, "Before Discovery : " + getAllDiscoveredDevices());
+                // load pair-wised device UUIDs from Bridge Credentials
+                loadPairwisedDeviceUUIDs();
+                // clear all pair-wised device list discovered pre-time
                 clearPairwisedDevices();
+                // discover all pair-wised device except Bridge and OBT
                 OCUuid bridge_di = OCCoreRes.getDeviceId(Bridge.BRIDGE_INDEX);
                 if (!OcUtils.discoverAllDevices(new DeviceDiscoveryHandler(getService(), bridge_di))) {
                     final String msg = "Failed to discover devices";
@@ -785,9 +783,7 @@ public class BridgeService extends IntentService {
         executorService.scheduleAtFixedRate(new Runnable() {
             @Override
             public void run() {
-                // TODO : Pairwised device UUID
-                // bridgeServer.loadPairwisedDeviceUUIDs();
-                // TODO : Getting Properites of Light Control Service
+                // Getting Properites of Light Control Service for resource monitoring
                 doGetLightControlResources();
             }
         }, 30, 180, TimeUnit.SECONDS); // 30sec interval after 30sec delay
@@ -800,6 +796,12 @@ public class BridgeService extends IntentService {
         }, 10, TimeUnit.SECONDS);*/
     }
 
+    private void loadPairwisedDeviceUUIDs() {
+        if(bridgeServer!=null) {
+            bridgeServer.loadPairwisedDeviceUUIDs();
+        }
+    }
+
     public void clearPairwisedDevices() {
         if(bridgeServer!=null) {
             bridgeServer.clearPairwisedDevices();

BIN
app/src/main/jniLibs/arm64-v8a/libiotivity-lite-jni.so


BIN
app/src/main/jniLibs/armeabi-v7a/libiotivity-lite-jni.so


BIN
app/src/main/jniLibs/x86/libiotivity-lite-jni.so


BIN
app/src/main/jniLibs/x86_64/libiotivity-lite-jni.so