我的应用程序请求检查用户是否不允许启动前台服务。但是
if (checkCallingOrSelfPermission("android.permission.FOREGROUND_SERVICE") == PackageManager.PERMISSION_GRANTED) {
//always true ??? but the user has not allowed this permission
}
我的应用程序请求检查用户是否不允许启动前台服务。但是
if (checkCallingOrSelfPermission("android.permission.FOREGROUND_SERVICE") == PackageManager.PERMISSION_GRANTED) {
//always true ??? but the user has not allowed this permission
}
想要使用前台服务的应用程序现在必须请求 首先是FOREGROUND_SERVICE权限。这是正常权限,所以 系统会自动将其授予请求的应用。开始一个 未经许可的前台服务会引发SecurityException。
解决方案是在AndroidManifest.xml
中添加以下内容:
<manifest ...>
...
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
...
<application ...>
...
</manifest>
,
根据android文档,如果权限是正常的,则不需要动态地询问它;如果权限是危险的权限,那么您就需要动态地询问它
来自android文档::如果您的应用在其应用中列出了正常权限 清单(即不会对用户的 隐私或设备的操作),系统会自动授予 这些对您应用的权限。
如果您的应用在其清单中列出了危险的权限(即, 可能会影响用户隐私或 设备的正常操作),例如上面的SEND_SMS权限, 用户必须明确同意授予这些权限。
Permissions overview Document
只需在清单中声明以下权限
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />