前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【错误记录】前台进程报错 ( Permission Denial: startForeground requires android.permission.FOREGROUND_SERVICE )

【错误记录】前台进程报错 ( Permission Denial: startForeground requires android.permission.FOREGROUND_SERVICE )

作者头像
韩曙亮
发布2023-03-29 09:30:12
6590
发布2023-03-29 09:30:12
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、报错信息


进程保活时 , 遇到的问题 , 手机 Pixel 2 , Android 10.0 系统 ;

代码语言:javascript
复制
2021-04-08 18:17:09.953 15585-15585/kim.hsl.keep_progress_alive E/AndroidRuntime: FATAL EXCEPTION: main
    Process: kim.hsl.keep_progress_alive, PID: 15585
    java.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_SERVICE
        at 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_SERVICE
        at 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 中注册即可 ;

代码语言:javascript
复制
<?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" />

    <application
        android: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>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、报错信息
  • 二、修改方案
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档