android.app.ForegroundServiceStartNotAllowedException:Service.startForeground()notallowedduetomAllowStartForegroundfalse
创始人
2024-08-20 00:30:12
0

出现这个异常是因为在Android 8.0及以上版本中,启动前台服务需要调用startForeground()方法,而如果应用未在前台运行且未受到用户明确请求,则会抛出该异常。

解决这个问题的方法如下: 首先,要在AndroidManifest.xml中声明当前应用需要后台运行的权限:

然后,在启动前台服务时需要满足以下条件:

  1. 设置当前应用为前台应用。 二选一: (1)通过startForeground方法将应用置为前台应用,在这种情况下要在各自的服务中添加一个通知来满足前台服务的要求。 (2)从Android O(API级别26)开始,应用也可以使用startForegroundService()方法启动服务,该方法将开始前台服务并请求系统分配一个专用通知。
  2. 检查应用是否已获得 FOREGROUND_SERVICE 权限。如果您没有获得此权限,则启动前台服务时会出现 SecurityException。

参考代码如下:

// 首先检查是否有获取运行时权限 if (ContextCompat.checkSelfPermission(this, Manifest.permission.FOREGROUND_SERVICE) == PackageManager.PERMISSION_GRANTED) {

// 创建 Notification 对象
Notification notification = new Notification.Builder(this)
        // 自定义 Notification 样式
        .setContentTitle("My Foreground Service")
        .setContentText("Foreground Service Example in Android")
        .setSmallIcon(R.drawable.icon_foreground_service)
        .setContentIntent(pendingIntent).build();
// 启动服务
startForeground(YOUR_NOTIFICATION_ID, notification);

} else { // 没有获取到权限,请求用户授权 // 使用此方法之前,请确保已注册并设置了 Intent 权限 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.FOREGROUND_SERVICE}, YOUR_PERMISSION_CODE); } 致此,该

相关内容

热门资讯

推荐透视!pokemmo修改器... 推荐透视!pokemmo修改器手机版!总是一直都是有辅助软件(有挂方针)-哔哩哔哩推荐透视!poke...
解密透视!wepoker分析,... 解密透视!wepoker分析,sohoo竞技联盟辅助器,练习教程(有挂技巧)-哔哩哔哩1、sohoo...
必备透视!sohoopoker... 必备透视!sohoopoker辅助!总是一直都是有辅助方法(有挂方法)-哔哩哔哩1、很好的工具软件,...
总结透视!哈糖大菠萝有没有挂,... 总结透视!哈糖大菠萝有没有挂,pokemmo手机脚本辅助器,诀窍教程(证实有挂)-哔哩哔哩pokem...
专业透视!pokemmo辅助官... 专业透视!pokemmo辅助官网!其实是真的有辅助软件(有挂秘笈)-哔哩哔哩1、专业透视!pokem...
了解透视!佛手在线是不是有挂,... 了解透视!佛手在线是不是有挂,德普之星app安卓版破解版,办法教程(有挂功能)-哔哩哔哩1、下载好德...
揭露透视!哈糖大菠萝破解器!一... 揭露透视!哈糖大菠萝破解器!一贯一直总是有辅助方法(有挂神器)-哔哩哔哩1、哈糖大菠萝破解器脚本辅助...
教你透视!wepoker私局代... 教你透视!wepoker私局代打,wepoker私人局俱乐部怎么进,要领教程(有挂头条)-哔哩哔哩运...
详情透视!agpoker辅助!... 详情透视!agpoker辅助!切实是有辅助教程(有挂教程)-哔哩哔哩1、上手简单,内置详细流程视频教...
了解透视!大菠萝789辅助器下... 了解透视!大菠萝789辅助器下载,wpk透视辅助下载,妙招教程(有挂详细)-哔哩哔哩所有人都在同一条...