我有几个需要checkSelfPermission()
电话的电话。所以我认为将这些检查结合在一个Util类中非常简洁,如下所示:
public boolean checkSelfPermissions(String... permissions) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context,
permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}
但是在需要检查的调用之前使用此方法时,我在Android Studio中显示错误,我需要检查此权限。自动生成代码会产生以下代码段:
if (ActivityCompat.checkSelfPermission(MainApplication.getContext(),
Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
那么为什么这个片段被认为是正确的,而调用我的自定义类则不然?电话看起来像这样:
if (!PermissionUtil.getInstance(MainApplication.getContext()).checkSelfPermissions(
Manifest.permission.ACCESS_FINE_LOCATION)) {
return;
}