我有一个申请,要求用户允许启动设备的蓝牙。我想知道用户是否接受或拒绝了许可。 有没有办法做到这一点。
答案 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方法中检查。
希望这有帮助。