我设计了一个函数,可以从SD获取/设置资源,如果从sd找不到资源,则从Asset获取资源,如果可能,将资产写回SD
此函数可以通过方法调用检查SD是否已安装并可访问...
boolean bSDisAvalaible = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
我设计的函数可以从一个应用程序(项目)使用到另一个应用程序(有或没有android.permission.WRITE_EXTERNAL_STORAGE)
然后,我想检查当前应用程序是否具有此特定权限,而不使用SecurityException。
是否存在一种在运行时查询当前定义的权限的“好”方式?
发布于 2011-08-26 19:07:10
您可以使用Context.checkCallingorSelfPermission()
函数来实现此目的。下面是一个示例:
private boolean checkWriteExternalPermission()
{
String permission = android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
int res = getContext().checkCallingOrSelfPermission(permission);
return (res == PackageManager.PERMISSION_GRANTED);
}
发布于 2013-04-13 08:33:33
这也是另一种解决方案。
PackageManager pm = context.getPackageManager();
int hasPerm = pm.checkPermission(
android.Manifest.permission.WRITE_EXTERNAL_STORAGE,
context.getPackageName());
if (hasPerm != PackageManager.PERMISSION_GRANTED) {
// do stuff
}
发布于 2014-02-13 00:37:30
您还可以使用以下命令:
private boolean doesUserHavePermission()
{
int result = context.checkCallingOrSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
return result == PackageManager.PERMISSION_GRANTED;
}
https://stackoverflow.com/questions/7203668
复制相似问题