質問失礼します。
現在AndroidStudioにて開発をしているのですが、Android7などで動作していた動きで、
OS起動時にアプリケーションの自動起動がAndroid9にてうまく動作しなくなってしまいました。
ContextCompat.startForegroundServiceに変更したり、
パーミッションに<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />などを追加してみたのですが、うまくいきません。
どなたかご教授頂けないでしょうか。
開発言語:Java
AndroidStudio Ver3.3.2
TargetSDK 28
ソースコードは以下になります。
AndroidManifest.xml <receiver android:name=".BootReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED" android:process=":remote"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" /> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> <service android:name=".○○〇" android:enabled="true" /> <uses-library android:name="org.apache.http.legacy"/> </application> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
BootReceiver.java public class BootReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { Intent serviceIntent = new Intent(context, 〇〇〇.class); serviceIntent.setAction("start"); if (Build.VERSION.SDK_INT >= 26) { ContextCompat.startForegroundService(context, serviceIntent); } else { context.startService(serviceIntent); } } } }
何卒、宜しくお願い致します。
現時点でBroadcastReceiverが実行していないのか、それともBroadcastReceiverは実行しているがサービスが起動できていないのかの判断ができておりません。
何か判断できないか調査中なのですがそこで詰まっている状況です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。