onRequestPermissionsResult会立即以拒绝权限返回 [英] onRequestPermissionsResult returns immediately with denied permission

查看:182
本文介绍了onRequestPermissionsResult会立即以拒绝权限返回的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Android应用需要请求位置服务的权限.我这样做是:

My Android app needs to request permission for location services. I do this with:

ActivityCompat.requestPermissions(this, new String[]{
                            Manifest.permission.ACCESS_COARSE_LOCATION},
                            REQUEST_CODE_ACCESS_COARSE_LOCATION);

但是在调用此方法之后,onRequestPermissionsResult立即返回,但权限被拒绝:

But immediately after this is called, onRequestPermissionsResult returns immediately with permission denied:

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
    switch (requestCode) {
        case REQUEST_CODE_ACCESS_COARSE_LOCATION: {

        }
    }
}

该权限在清单中列出:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COURSE_LOCATION"/>

我还清除了缓存,以防止用户先前做出的任何拒绝都会影响到这一点.

I also cleared the cache to prevent any previous denial the user gave from affecting this.

我希望弹出一个对话框,要求用户授予或拒绝对位置服务的许可,但该对话框未显示.

I am expecting a dialog to pop up requesting the user to grant or deny permission to the location services but it isn't showing.

推荐答案

更改:

<uses-permission android:name="android.permission.ACCESS_COURSE_LOCATION"/>

收件人:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

该权限适用于粗略"位置数据(即,不细粒度),而不适用于课程"位置数据(例如,正在举行某类大学课程的地方).

The permission is for "coarse" location data (i.e., not fine-grained), not "course" location data (e.g., where some university class is being held).

这篇关于onRequestPermissionsResult会立即以拒绝权限返回的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆