要检查您是否有权限,请致电 ContextCompat.checkSelfPermission()
[Context] .checkPermission()是确定给定的 允许特定的进程和用户ID在其中运行 系统
我在android 24上有以下代码:
smsPerm = "android.permission.SEND_SMS";
int result = checkPermission(smsPerm, Process.myPid(), Process.myUid());
result
将是:
PackageManager.PERMISSION_GRANTED
,如果smsPerm
已添加到清单并在运行时被授予。PackageManager.PERMISSION_DENIED
(如果已将smsPerm
添加到清单但在运行时未授予)。PackageManager.PERMISSION_DENIED
(如果未将smsPerm
添加到清单中。这句话看来,其行为与android +24上的checkSelfPermission
相同。我可以使用checkPermission
代替checkSelfPermission
吗?
答案 0 :(得分:1)
我不确定您认为自己会获得什么...但是,是的,您可以使用Context#checkPermission()
代替ContextCompat.checkSelfPermission()
。
ContextCompat.checkSelfPermission()
的实现使用Context#checkPermission()
,至少使用at the time that I posted this answer。
public static int checkSelfPermission(@NonNull Context context, @NonNull String permission) {
if (permission == null) {
throw new IllegalArgumentException("permission is null");
}
return context.checkPermission(permission, android.os.Process.myPid(), Process.myUid());
}
从长远来看,使用ContextCompat.checkSelfPermission()
会更安全。可以对其进行更新以反映适用于新版本Android的新规则。