前提・実現したいこと
以下のページより、Android10以降ではバックグラウンドサービスからの起動は通知で起動する必要があることが分かりました。
バックグラウンドからのアクティビティの起動に関する制限
Display time-sensitive notifications
上記より、該当のソースコードのようにロジックを組み、Android7、8でテストを実施しました。
するとAndroid7では通知が設定されつつ、即時、フルスクリーンで画面が表示されました。
しかし、Android8ではハンズアップ通知にもならず通知が設定されるだけで、フルスクリーンで表示もされません。
最終的にはAndroid9まではバックグラウンドから直接Activityを起動し、10以降は上記の仕様で通知より起動するように変更したいと考えています。
しかし、エミュレータが動かないスペックの古いパソコンかつ、Android8までの端末しかない環境で上記仕様についてテストしたいと考えています。
Android10では該当ソースコードでちゃんと機能するのでしょうか?
また、ターゲットはAPIレベル28までとして、バックグラウンドから直接startActivityとして起動した場合、異常終了するのでしょうか?
それとも問題なく直接起動できるのでしょうか?
該当のソースコード
java
1 String channelId = "default"; 2 Intent fullScreenIntent = new Intent(intent2); 3 PendingIntent fullScreenPendingIntent = PendingIntent.getActivity(this, 0, 4 fullScreenIntent, PendingIntent.FLAG_UPDATE_CURRENT); 5 6 NotificationCompat.Builder notificationBuilder = 7 new NotificationCompat.Builder(this, channelId) 8 .setSmallIcon(R.mipmap.ic_launcher_round) 9 .setContentTitle("abc") 10 .setContentText("def") 11 .setDefaults(Notification.DEFAULT_LIGHTS) 12 .setPriority(NotificationCompat.PRIORITY_MAX) 13 .setCategory(NotificationCompat.CATEGORY_ALARM) 14 15 .setFullScreenIntent(fullScreenPendingIntent, true); 16 17 notification = notificationBuilder.build(); 18 19 // startForeground 20 startForeground(1, notification);
補足情報(FW/ツールのバージョンなど)
Android Studio3.4
APIレベル14から28まで対象
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。