如何确定用户是否已接受或拒绝Android中的权限?

时间:2017-04-29 13:03:53

标签: android permissions android-permissions

我有一个申请,要求用户允许启动设备的蓝牙。我想知道用户是否接受或拒绝了许可。 有没有办法做到这一点。

1 个答案:

答案 0 :(得分:2)

您必须覆盖onRequestPermissionsResult方法。 例如,在这里检查用户是否授予了访问其位置的权限:

 @Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if (requestCode == 1) {
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
               //Do something here
            }
        }
    }
}

此外,在此之前,当您征得您的许可时,您必须确定您的requestCode,当您被要求获得许可时,该requestCode也将被发送到此方法。所以它会像这样:

 if (ContextCompat.checkSelfPermission(MapsActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                        ActivityCompat.requestPermissions(MapsActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);

现在,我的requestCode等于1(我将在稍后的onActivityRestult方法中检查。

希望这有帮助。