我有一个应用程序,如果没有,则需要检查和请求多个权限。因此,当应用程序第一次运行时,它会跳过所有之后的函数调用,即使在单击允许访问之后也是如此
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()
有没有办法在用户点击允许访问之前不调用该函数
最佳答案
您必须将 requestPermissions
视为 startActivityForResult
。它只是为用户启动 UI 以授予/拒绝权限。
与 onActivityResult
一样,您必须覆盖 onRequestPermissionsResult
才能知道权限处理何时完成。您可以检查权限是被授予还是被拒绝,并从那里执行您的逻辑。
关于java - 如何等待用户在 Marshmallow 中授予权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38534918/