首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android 6.0 bug?我有权限,但在Android6.0中getScanResults()仍然返回空列表

Android 6.0 bug?我有权限,但在Android6.0中getScanResults()仍然返回空列表
EN

Stack Overflow用户
提问于 2015-12-15 19:46:49
回答 3查看 7.3K关注 0票数 5

我已经在android版本6.0中请求了权限-棉花糖,但当使用getScanResults()时,它仍然返回空列表。

代码语言:javascript
复制
 private boolean checkPermission() {

    List<String> permissionsList = new ArrayList<String>();

    if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        permissionsList.add(Manifest.permission.ACCESS_FINE_LOCATION);
    }
    if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        permissionsList.add(Manifest.permission.ACCESS_COARSE_LOCATION);
    }

    if (permissionsList.size() > 0) {
        ActivityCompat.requestPermissions((Activity) mContext, permissionsList.toArray(new String[permissionsList.size()]),
                REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
        return false;
    }
    return true;
}

在请求权限后,那么在onRequestPermissionsResult方法中,我已经获得了ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION的权限,但是我仍然不能得到扫描结果

代码语言:javascript
复制
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions,
                                       int[] grantResults) {
    switch (requestCode) {
        case REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS:
            if (permissions.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED ||
                    (permissions.length == 2 && grantResults[0] == PackageManager.PERMISSION_GRANTED &&
                            grantResults[1] == PackageManager.PERMISSION_GRANTED)){
                List<ScanResult> scanResults = mWifi.getScanResults();
                //list is still empty
            }
             else {
                // Permission Denied
                Toast.makeText(mContext, getString(R.string.permission_deny), Toast.LENGTH_LONG).show();
            }
            break;
    }
}

这是android M的bug吗?

EN

回答 3

Stack Overflow用户

发布于 2016-04-18 03:45:19

在Nexus5上,随着M的更新,我似乎也需要打开GPS定位来让它工作。

票数 4
EN

Stack Overflow用户

发布于 2016-01-21 10:15:22

可能是android M的运行时权限管理导致的,你可以设置targetSdkVersion 19(小于21或23)重试。对我来说很管用

票数 1
EN

Stack Overflow用户

发布于 2018-08-01 09:13:29

在运行时需要权限时会请求该权限。请注意,它不是:

代码语言:javascript
复制
Settings -> Location

它正在检查:

代码语言:javascript
复制
Settings -> Applications -> (YOUR APP) -> Permissions

这就是必须设置更细粒度的运行时权限的地方。从版本6开始,必须为每个应用程序设置它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34288416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档