赞
踩
近期做http交互的项目,在编写完基础代码后运行,突然出现问题,无法运行,特此记录!!
简易制作服务器端,开启网络服务service,在项目运行时,控制台报错如下:
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.am.ActivityManagerService.enforcePermission(ActivityManagerService.java:10508)
at com.android.server.am.ActiveServices.setServiceForegroundInnerLocked(ActiveServices.java:1329)
at com.android.server.am.ActiveServices.setServiceForegroundLocked(ActiveServices.java:1007)
at com.android.server.am.ActivityManagerService.setServiceForeground(ActivityManagerService.java:22669)
at android.app.IActivityManager$Stub.onTransact$setServiceForeground$(IActivityManager.java:10665)
java.lang.SecurityException: Permission Denial: startForeground from pid=21460, uid=10362 requires android.permission.FOREGROUND_SERVICE
显示权限拒绝,需要FOREGROUND_SERVICE权限!
但是之前我都是正常运行的,知道查看最近修改的代码终于发现了问题所在 T-T。。。
在AndroidManifest.xml文件中添加如下代码:
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
因为我在项目中的build.gradle文件修改了targetSdkVersion = 30
如果您设置了targetSdkVersion = 28(Android 9/Pie)或更高,并且没有声明FOREGROUND_SERVICE权限的使用,就会发生这种情况.
从适用于Android 9的the migration notes起:
想要使用前台服务的应用现在必须请求
<manifest ...>
...
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
...
<application ...>
...
</manifest>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。