我使用的 android SDK 目标版本是 22 READ_CONTACTS
I am using for android SDK target version is 22 for READ_CONTACTS
我用于读取联系人的权限分配清单中的权限。我的问题是我不会将 sdk 版本增加到 23 以向用户显示权限对话框(默认情况下由 android 提供)并获得权限并通过 it.in android SDK 版本 22.
minSdkVersion = 16
targetSdkVersion = 22
compileSdkVersion = 27
I am using this code right now.
if (Build.VERSION.SDK_INT >= 23) {
if (checkPermission()) {
Log.e("permission", "Permission already granted.");
} else {
requestPermission();
}
}
private boolean checkPermission() {
int result = ContextCompat.checkSelfPermission(fragmentContext, android.Manifest.permission.READ_CONTACTS);
if (result == PackageManager.PERMISSION_GRANTED) {
return true;
} else {
return false;
}
}
private void requestPermission() {
ActivityCompat.requestPermissions((Activity) fragmentContext, new String[]{android.Manifest.permission.READ_CONTACTS}, REQUEST_READ_CONTACTS);
}
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case REQUEST_READ_CONTACTS:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(fragmentContext,
"Permission accepted", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(fragmentContext,
"Permission denied", Toast.LENGTH_LONG).show();
}
break;
}
}
On API 22 and below permissions are already granted if specified in
the manifest.
对于 API 23+ ContextCompat#checkSelfPermission 可能有用。它 "degrades" 优雅地出现在较早的 API 秒,如果它出现在清单中,它会告诉您权限已被授予。在 API 23 及更高版本上,它实际上会检查它是否被授予。
我用于读取联系人的权限分配清单中的权限。我的问题是我不会将 sdk 版本增加到 23 以向用户显示权限对话框(默认情况下由 android 提供)并获得权限并通过 it.in android SDK 版本 22.
minSdkVersion = 16 targetSdkVersion = 22 compileSdkVersion = 27
I am using this code right now. if (Build.VERSION.SDK_INT >= 23) { if (checkPermission()) { Log.e("permission", "Permission already granted."); } else { requestPermission(); } } private boolean checkPermission() { int result = ContextCompat.checkSelfPermission(fragmentContext, android.Manifest.permission.READ_CONTACTS); if (result == PackageManager.PERMISSION_GRANTED) { return true; } else { return false; } } private void requestPermission() { ActivityCompat.requestPermissions((Activity) fragmentContext, new String[]{android.Manifest.permission.READ_CONTACTS}, REQUEST_READ_CONTACTS); } @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case REQUEST_READ_CONTACTS: if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { Toast.makeText(fragmentContext, "Permission accepted", Toast.LENGTH_LONG).show(); } else { Toast.makeText(fragmentContext, "Permission denied", Toast.LENGTH_LONG).show(); } break; } }
On API 22 and below permissions are already granted if specified in the manifest.
对于 API 23+ ContextCompat#checkSelfPermission 可能有用。它 "degrades" 优雅地出现在较早的 API 秒,如果它出现在清单中,它会告诉您权限已被授予。在 API 23 及更高版本上,它实际上会检查它是否被授予。