web-dev-qa-db-ja.com

java.lang.SecurityException:許可の拒否:startForeground Android 9.0 Pie API 28

私のアプリはAndroidバージョン27までで正常に動作していました。しかし、この例外はAndroid 9.0 Pie、API 28。

これがトレースです。

Java.lang.RuntimeException: Unable to create service com.example.demo: Java.lang.SecurityException: Permission Denial: startForeground from pid=21535, uid=10088 requires Android.permission.FOREGROUND_SERVICE
        at Android.app.ActivityThread.handleCreateService(ActivityThread.Java:3544)
        at Android.app.ActivityThread.access$1300(ActivityThread.Java:199)
        at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1666)
        at Android.os.Handler.dispatchMessage(Handler.Java:106)
        at Android.os.Looper.loop(Looper.Java:193)
        at Android.app.ActivityThread.main(ActivityThread.Java:6669)
        at Java.lang.reflect.Method.invoke(Native Method)
        at com.Android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.Java:493)
        at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:858)
7
user6274128

ドキュメント から

この許可をAndroidManifest.xmlファイルに追加する必要があり、許可チェックを処理する必要はありません。常に付与されます。

<uses-permission Android:name="Android.permission.FOREGROUND_SERVICE" />
18
user6274128