我有一个应用程序需要检查多个权限,如果不存在则请求。因此,当应用程序第一次运行时,它会跳过其后的所有函数调用,即使在单击允许访问后也是如此
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()
在用户点击允许访问权限之前,有没有办法不调用该功能
答案 0 :(得分:3)
您必须将requestPermissions
视为startActivityForResult
。它只是启动用户授予/拒绝权限的UI。
与onActivityResult
一样,您必须覆盖onRequestPermissionsResult
以了解权限过程何时完成。您可以检查权限是被授予还是被拒绝,并从那里执行您的逻辑。