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); } 致此,该

相关内容

热门资讯

透视脚本!wepoker辅助器... 透视脚本!wepoker辅助器是真的吗(透视)底牌透视(一贯是有挂)1)wepoker辅助器是真的吗...
透视app!德普之星透视辅助软... 透视app!德普之星透视辅助软件下载(透视)透视辅助软件激活码(原来是真的有挂)透视app!德普之星...
透视黑科技!德普之星透视辅助插... 透视黑科技!德普之星透视辅助插件(透视)透视辅助软件激活码(都是存在有挂)1、每一步都需要思考,不同...
透视规律!wepoker有辅助... 透视规律!wepoker有辅助器吗(透视)可以设置房间(都是真的是有挂)1、超多福利:超高返利,海量...
透视科技!德普之星透视(透视)... 透视科技!德普之星透视(透视)透视(真是是有挂)1、起透看视 德普之星透视透明视辅助2、随意选牌 德...
透视透视挂!wepoker国外... 透视透视挂!wepoker国外版透视(透视)有辅助(好像有挂)1、wepoker国外版透视系统规律教...
透视软件!wepoker科技辅... 透视软件!wepoker科技辅助器(透视)代打辅助(本来存在有挂)1、下载好wepoker科技辅助器...
透视透视!德普之星辅助器怎么用... 透视透视!德普之星辅助器怎么用(透视)私人局辅助免费(一直存在有挂)1、该软件可以轻松地帮助玩家将德...
透视新版!wepoker免费脚... 透视新版!wepoker免费脚本咨询(透视)有脚本(总是真的有挂)一、wepoker免费脚本咨询软件...
透视黑科技!德普之星透视辅助软... 透视黑科技!德普之星透视辅助软件(透视)辅助软件(原来真的有挂)1、下载好德普之星透视辅助软件辅助软...