如何检查用户是否拒绝了android.permission.FOREGROUND_SERVICE

我的应用程序请求检查用户是否不允许启动前台服务。但是

if (checkCallingOrSelfPermission("android.permission.FOREGROUND_SERVICE") == PackageManager.PERMISSION_GRANTED) {
 //always true ??? but the user has not allowed this permission
}
my_winter13292 回答:如何检查用户是否拒绝了android.permission.FOREGROUND_SERVICE

  

想要使用前台服务的应用程序现在必须请求   首先是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" />
本文链接:https://www.f2er.com/3166579.html

大家都在问