授予Android权限 - 未知值
问题描述:
前段时间,我通过一些来自互联网的教程向我的应用程序添加了关于“精细位置”的权限。一切工作就像我想要的,但我有问题约1不明原因线:授予Android权限 - 未知值
private static final int MY_PERMISSION_REQUEST_FINE_LOCATION = 101;
为什么有值101?为什么不是102或200?
private static final int MY_PERMISSION_REQUEST_FINE_LOCATION = 101;
。
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},
MY_PERMISSION_REQUEST_FINE_LOCATION);
} else {
}
return;
}
。
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case MY_PERMISSION_REQUEST_FINE_LOCATION:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
return;
}
LatLng position = new LatLng(0, 0);
} else {
close();
}
}
}
答
你可以给它的价值,你want.It的值得做的工作onRequestPermissionResult赶requestCode
答
在requestPermissions()的文档,它说,requestCode
是
应用(int,String [],int [])的结果相匹配的特定请求代码与 报告的结果相匹配。应该是> = 0.
这是什么意思是你将显式地指定这个代码给你想要的任何值,然后你可以使用这个值来检查你的请求是否成功在回调中onRequestPermissionsResult
。一个例子,把这段代码在你的活动:
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case 101:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//granted
} else {
//not granted
}
break;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
所以回到你的问题,你可以使用102或200,或任何价值,你想。但是您应该始终检查请求是否成功,方法是使用您在requestPermissions
方法中提供的相同代码。
值得一提的是,活动中的每个'requestPermissions()'调用都应该得到一个不同的'int'值。 –
但是在我的代码中我再也没有提到101 – androidmanifest
让我看看你的代码 – Ekrem