Browse Source

BootCompletedBroadcastReceiver was added for always-on service.

Trishia 4 năm trước cách đây
mục cha
commit
df7c65349c

+ 8 - 1
app/src/main/AndroidManifest.xml

@@ -16,6 +16,8 @@
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
     <uses-permission android:name="android.permission.NFC" />
 
+    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+
     <application
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
@@ -40,7 +42,12 @@
             </intent-filter>
         </service>
 
-        <receiver android:name=".AlarmReceiver" />
+        <!--<receiver android:name=".AlarmReceiver" />-->
+        <receiver android:name=".BootCompletedReceiver" android:exported="false" android:enabled="true">
+            <intent-filter>
+                <action android:name="android.intent.action.BOOT_COMPLETED" />
+            </intent-filter>
+        </receiver>
 
     </application>
 

+ 25 - 0
app/src/main/java/org/iotivity/bridge/homeserver/BootCompletedReceiver.java

@@ -0,0 +1,25 @@
+package org.iotivity.bridge.homeserver;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build;
+import android.util.Log;
+
+public class BootCompletedReceiver extends BroadcastReceiver {
+
+    final static String TAG = BootCompletedReceiver.class.getName();
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+
+        Log.w(TAG, "onReceive() called");
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+            Intent in = new Intent(context, BridgeService.class);
+            context.startForegroundService(in);
+        } else {
+            Intent in = new Intent(context, BridgeService.class);
+            context.startService(in);
+        }
+    }
+}