Android位置权限

时间:2016-03-16 04:43:09

标签: android google-maps permissions location-services

我在我的应用程序中使用这两个权限

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

我已在清单中添加了权限。但是,当我调试到手机时,我尝试使用以下功能检查权限:

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
        Log.i("permission","done");
    }
    else
    {
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED ) {
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
                    MY_PERMISSION_ACCESS_COARSE_LOCATION);
        }
        // The ACCESS_FINE_LOCATION is denied, then I request it and manage the result in
        // onRequestPermissionsResult() using the constant MY_PERMISSION_ACCESS_FINE_LOCATION
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED ) {
            ActivityCompat.requestPermissions(this,
                    new String[] { Manifest.permission.ACCESS_FINE_LOCATION },
                    MY_PERMISSION_ACCESS_FINE_LOCATION);
        }

    }

应用程序将输入第一个IF语句,而不是请求用户的许可。 我以前没有给过这个申请任何许可。 即使我只是在手机中调试和安装应用程序,为什么权限才会被授予?

1 个答案:

答案 0 :(得分:0)

由于运行时权限是在Marshmallow中添加的,而不是在以前的版本中添加,因此如果您在清单中添加了权限,它将自动授予权限,甚至不会在运行时请求权限,除非它是Marshmallow设备。 / p>