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

标签 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()

有没有办法在用户点击允许访问之前不调用该函数

最佳答案

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

onActivityResult 一样,您必须覆盖 onRequestPermissionsResult 才能知道权限处理何时完成。您可以检查权限是被授予还是被拒绝,并从那里执行您的逻辑。

关于java - 如何等待用户在 Marshmallow 中授予权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38534918/

相关文章:

java - 等待多个 SwingWorker

java - 如何在1.8中使用可调用的futuretask完全杀死正在执行的任务

java - Spring Batch Kafka Kafka 到数据库作业

android - org.openqa.selenium.WebDriverException : No command or response codec has been defined. 无法继续

java - 从类中调用 Activity 的方法(未知)

javascript - .htaccess 规则使 sm2 无法在 Android 和 iPad 上加载我网站的 mp3

java - 验证十进制数

java - 在自定义 uml 任务中找不到 Gradle 模块

java - 出错后重启 BehaviorSubject

android - 如何获得警报以触发通知