Dav*_* T. 6 permissions android package android-manifest android-context
多项选择题:
以下哪项将正确检查应用程序是否在其AndroidManifest.xml中声明了某个权限?
getContext().checkCallingOrSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
Run Code Online (Sandbox Code Playgroud)
要么
getContext().getPackageManager().checkPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, getContext().getPackageName()) == PackageManager.PERMISSION_GRANTED
Run Code Online (Sandbox Code Playgroud)
基本上,我从Android文件中害怕什么checkCallingOrSelfPermission声称 - >如果你只是检查它,它授予IPC权限?那有什么意思?
http://developer.android.com/reference/android/content/Context.html#checkCallingOrSelfPermission(java.lang.String)
所以对真正差异的任何解释都会很棒:D
*注意:我在库中提供此代码,因此我只允许在运行时检查权限,除非您知道更好的方法.
你可以使用这个方法:
//for example, permission can be "android.permission.WRITE_EXTERNAL_STORAGE"
public boolean hasPermission(String permission)
{
try {
PackageInfo info = getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS);
if (info.requestedPermissions != null) {
for (String p : info.requestedPermissions) {
if (p.equals(permission)) {
return true;
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9454 次 |
| 最近记录: |