首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手动禁用后请求权限。(首先用户接受,然后在设置中禁用)

手动禁用后请求权限。(首先用户接受,然后在设置中禁用)
EN

Stack Overflow用户
提问于 2017-07-27 16:47:39
回答 4查看 1.4K关注 0票数 0

我需要一直实现权限检查。如果我在这里写示例用例来说明我的意思,那会更容易。

1)首先,用户安装app

2)在第一次活动启动时,客户端得到带有关于grand权限的问题的对话框

3)客户端接受所有权限

4)用户手动关闭app设置中的权限

5)他返回到应用程序,现在应该再次看到带有关于大权限的问题的对话框

问题是我对"5)“步骤有问题。如何做到这一点?

对于混乱的语言,我很抱歉

EN

回答 4

Stack Overflow用户

发布于 2017-07-27 16:55:41

在Manifest.xml中声明的MainActivity中,您应该在onCreate方法中实现,检查权限,如果没有授予权限,则请求它们。

下面是关于developer.android的文档

但是如果你在使用你的应用的同时禁用了权限,最好总是在代码需要它之前实现权限检查。因此,如果您有一个需要存储权限的方法,您应该在执行该方法之前检查是否授予了该权限。

票数 0
EN

Stack Overflow用户

发布于 2017-07-27 16:57:45

因此,您应该仅在将要使用功能时请求权限,或者您可以实现一个BaseActivity类并从该BaseActivity扩展所有活动,然后在那里请求您的权限。但理想情况下,它应该只在需要的时候完成。

你可以这样做:

代码语言:javascript
复制
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;
        }

然后在

代码语言:javascript
复制
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults)
票数 0
EN

Stack Overflow用户

发布于 2017-07-27 16:58:38

请查看此链接以了解明确的权限示例。如果用户在应用程序设置中拒绝权限,也可以处理此问题。

https://www.androidhive.info/2016/11/android-working-marshmallow-m-runtime-permissions/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45345726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档