我需要一直实现权限检查。如果我在这里写示例用例来说明我的意思,那会更容易。
1)首先,用户安装app
2)在第一次活动启动时,客户端得到带有关于grand权限的问题的对话框
3)客户端接受所有权限
4)用户手动关闭app设置中的权限
5)他返回到应用程序,现在应该再次看到带有关于大权限的问题的对话框
问题是我对"5)“步骤有问题。如何做到这一点?
对于混乱的语言,我很抱歉
发布于 2017-07-27 16:55:41
在Manifest.xml中声明的MainActivity中,您应该在onCreate方法中实现,检查权限,如果没有授予权限,则请求它们。
下面是关于developer.android的文档
但是如果你在使用你的应用的同时禁用了权限,最好总是在代码需要它之前实现权限检查。因此,如果您有一个需要存储权限的方法,您应该在执行该方法之前检查是否授予了该权限。
发布于 2017-07-27 16:57:45
因此,您应该仅在将要使用功能时请求权限,或者您可以实现一个BaseActivity类并从该BaseActivity扩展所有活动,然后在那里请求您的权限。但理想情况下,它应该只在需要的时候完成。
你可以这样做:
if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
== PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.WRITE_CONTACTS)
== PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.READ_CONTACTS)
== PackageManager.PERMISSION_GRANTED) {
Log.v(TAG,"Permission is granted");
return true;
} else {
Log.v(TAG,"Permission is revoked");
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.WRITE_CONTACTS, Manifest.permission.READ_CONTACTS}, 1);
return false;
}然后在
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults)发布于 2017-07-27 16:58:38
请查看此链接以了解明确的权限示例。如果用户在应用程序设置中拒绝权限,也可以处理此问题。
https://www.androidhive.info/2016/11/android-working-marshmallow-m-runtime-permissions/
https://stackoverflow.com/questions/45345726
复制相似问题