如何等待用户在Marshmallow中授予权限

时间:2016-07-22 20:39:58

标签: java android

我有一个应用程序需要检查多个权限,如果不存在则请求。因此,当应用程序第一次运行时,它会跳过其后的所有函数调用,即使在单击允许访问后也是如此

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
        != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
    // Check Permissions Now
    ActivityCompat.requestPermissions(
            this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
            REQUEST_CODE_LOCATION);
}
// Will not be called the first time
functionCall()

在用户点击允许访问权限之前,有没有办法不调用该功能

1 个答案:

答案 0 :(得分:3)

您必须将requestPermissions视为startActivityForResult。它只是启动用户授予/拒绝权限的UI。

onActivityResult一样,您必须覆盖onRequestPermissionsResult以了解权限过程何时完成。您可以检查权限是被授予还是被拒绝,并从那里执行您的逻辑。