質問: 以前開発した歩数計アプリを改修することになり、今年11月からのターゲットSDKがAndroid8以上必須の影響度を調査しています。 現状は歩数のカウントをサービスで行っています。アプリが起動していなくても歩数をカウントしています。 サービスは下記のタイミングで startService() で起動しています。 ・アプリ起動時 ・端末起動時(RECEIVE_BOOT_COMPLETED) ・アプリ更新時(PACKAGE_REPLACED) これをAndroid8に対応したいのですが、Android8の実機が無いので試せません。 どのような対応をすれば、Android8でも問題なく動作するようになりますか? アドバイスをよろしくお願いいたします。
回答: 自己レスです。 android8端末を入手できて、下記の変更で動作することを確認できました。思っていたより単純でした。 ``` サービス起動を下記に変更。 ContextCompat.startForegroundService(this, new Intent(this, PedometerService.class)); サービスのonCreateで下記を実行。 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) startForeground(1, new NotificationCompat.Builder(this).build()); ```