【错误记录】前台进程报错 ( Permission Denial: startForeground requires android.permission.FOREGROUND_SERVICE )
生活随笔
收集整理的這篇文章主要介紹了
【错误记录】前台进程报错 ( Permission Denial: startForeground requires android.permission.FOREGROUND_SERVICE )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、報錯信息
- 二、修改方案
一、報錯信息
進程保活時 , 遇到的問題 , 手機 Pixel 2 , Android 10.0 系統 ;
2021-04-08 18:17:09.953 15585-15585/kim.hsl.keep_progress_alive E/AndroidRuntime: FATAL EXCEPTION: mainProcess: kim.hsl.keep_progress_alive, PID: 15585java.lang.RuntimeException: Unable to create service kim.hsl.keep_progress_alive.foreground_service.ForegroundService: java.lang.SecurityException: Permission Denial: startForeground from pid=15585, uid=10361 requires android.permission.FOREGROUND_SERVICEat android.app.ActivityThread.handleCreateService(ActivityThread.java:3582)at android.app.ActivityThread.access$1300(ActivityThread.java:200)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1672)at android.os.Handler.dispatchMessage(Handler.java:106)at android.os.Looper.loop(Looper.java:193)at android.app.ActivityThread.main(ActivityThread.java:6718)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)Caused by: java.lang.SecurityException: Permission Denial: startForeground from pid=15585, uid=10361 requires android.permission.FOREGROUND_SERVICEat android.os.Parcel.createException(Parcel.java:1950)at android.os.Parcel.readException(Parcel.java:1918)at android.os.Parcel.readException(Parcel.java:1868)at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:5202)at android.app.Service.startForeground(Service.java:695)at kim.hsl.keep_progress_alive.foreground_service.ForegroundService.onCreate(ForegroundService.java:18)at android.app.ActivityThread.handleCreateService(ActivityThread.java:3570)at android.app.ActivityThread.access$1300(ActivityThread.java:200) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1672) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6718) 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) Caused by: android.os.RemoteException: Remote stack trace:at com.android.server.am.ActivityManagerService.enforcePermission(ActivityManagerService.java:9236)at com.android.server.am.ActiveServices.setServiceForegroundInnerLocked(ActiveServices.java:1189)at com.android.server.am.ActiveServices.setServiceForegroundLocked(ActiveServices.java:870)at com.android.server.am.ActivityManagerService.setServiceForeground(ActivityManagerService.java:20535)at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:977)二、修改方案
Android 9.0 后需要配置 android.permission.FOREGROUND_SERVICE 權限 , 不需要彈出對話框申請 , 只需要在 AndroidManifest.xml 中注冊即可 ;
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="kim.hsl.keep_progress_alive"><uses-permission android:name="android.permission.FOREGROUND_SERVICE" /><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/Theme.Keep_Progress_Alive"></application></manifest>總結
以上是生活随笔為你收集整理的【错误记录】前台进程报错 ( Permission Denial: startForeground requires android.permission.FOREGROUND_SERVICE )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 进程保活】提升进程优先
- 下一篇: 【错误记录】前台进程报错 ( Bad n