android目录访问
❶ 文件管理显示访问受限
文件管理显示访问受限是Android 11的一个特性,为了隐私和安全限制了对Android目录的访问。建议用Documents UI去访问这里的文件。你要说非常信任这个软件并且非用这个软件不可的话那就去找这个文件管理软件的开发商,找他要标准啊Documents UI授权功能。只要你在Documents UI授权访问了这个软件就可以读取。
安卓11制定了新的文件存储与读取规范,文件管理中的android/adta、android/obb文件夹无法通过文件管理直接访问。
回顾Android 10,其中的一大亮点就是改进了对应用程序权限“仅这一次”的处理。Android 10给了用户更多的应用程序控制权以及他们可以访问的内容,Android 11则提出一个更加出色的新功能。
Android 11 新增了关于位置、麦克风和摄像头的一次性权限许可。也就是说,获得一次性权限许可的 APP 在下次使用时,依然要询问用户获取授权。下次再使用该应用程序并希望使用该权限时,还会再重新授予它访问权限。
解决方法:请您进入系统设置-安全和隐私-隐私保护-关闭访问限制,关闭访问限制需要机主设置的手机密码。
❷ android系统怎么设置内部存储的访问权限
Android支持外部存储(case-insensitive filesystem with immutable POSIX permission classes and modes)。
外部存储可以通过物理介质提供(如SD卡),也可以通过将内部存储中的一部分封装而成,设备可以有多个外部存储实例。访问外部存储的权限
从Android 1.0开始,写操作受权限WRITE_EXTERNAL_STORAGE保护。
从Android 4.1开始,读操作受权限READ_EXTERNAL_STORAGE保护。
从Android 4.4开始,应用可以管理在它外部存储上的特定包名目录,而不用获取WRITE_EXTERNAL_STORAGE权限。
比如,一个包名为com.example.foo的应用,可以自由访问外存上的Android/data/com.example.foo/目录。外部存储对数据提供的保护较少,所以系统不应该存储敏感数据在外部存储上。
特别地,配置和log文件应该存储在内部存储中,这样它们可以被有效地保护。对于多用户的情况,一般每个用户都会有自己独立的外部存储,应用仅对当前用户的外部存储有访问权限。Environment API的目录
getDataDirectory():用户数据目录。
getDownloadCacheDirectory():下载缓存内容目录。getExternalStorageDirectory():主要的外部存储目录。
但是这个目录很可能当前不能访问,比如这个目录被用户的PC挂载,或者从设备中移除,或者其他问题发生,你可以通过getExternalStorageState()来获取当前状态。
还有多用户或者多外部存储的情况,此文不再讨论。为了不污染用户的根命名空间,一般不会直接使用这个外部存储的根目录。
任何应用私有的文件的应该被放置在 Context.getExternalFilesDir返回的目录下,在应用被卸载的时候,系统会清理的就是这个目录。
另一些共享文件应该被放置在 (String)返回的目录中。
写这个路径需要 WRITE_EXTERNAL_STORAGE权限,读需要 READ_EXTERNAL_STORAGE权限,当然写权限默认包含了读权限。从KITKAT 即Android 4.4开始,如果你的应用只是需要存储一些内部数据,可以考虑使用 :
getExternalFilesDir(String)或者getExternalCacheDir(),它们不需要获取权限。(String type)这个方法接收一个参数,表明目录所放的文件的类型,传入的参数是Environment类中的DIRECTORY_XXX静态变量,比如DIRECTORY_DCIM等。
注意:传入的类型参数不能是null,返回的目录路径有可能不存在,所以必须在使用之前确认一下,比如使用File.mkdirs创建该路径。getRootDirectory()得到Android的根目录。
isExternalStorageEmulated()设备的外存是否是用内存模拟的,是则返回true。(API Level 11)
isExternalStorageRemovable()设备的外存是否是可以拆卸的,比如SD卡,是则返回true。(API Level 9)Context API中的目录
getExternalFilesDir(String type)是应用在外部存储上的目录。
和Environment类的(String type)方法类似,返回包含参数指定的特定类型文件的子目录。
getExternalCacheDir()是应用的在外部存储上的缓存目录。从Android 4.4这两个方法不需要读写权限,是针对于本应用来说,如果要访问其他应用的相关目录,还是需要声明读写权限。
Android 4.4之前的版本要访问的话还是要声明读写权限的,如果没有在manifest中写权限,上面两个get方法都会返回null。与上面两个方法形成对比的是下面两个方法:
getFilesDir()
getCacheDir()
这两个方法得到的是内存上的目录。这些目录都是属于应用的,当应用被卸载的时候,里面的内容都会被移除,但是不要依赖于系统的操作。
❸ android 一个apk如何访问另外的apk的data目录的
一般APK是无法访问其它APK的data目录,你的APK需要在源码下编译,获得系统权限后才能访问。对应Android.mk 中添加 LOCAL_CERTIFICATE := platform。
❹ oppo手机data访问限制如何解决
数据访问限制?事实上,大多数文件管理器都支持访问,例如X-plore和MT manager。
至于完全提升,这应该是不可能的
您可以尝试卸载和更新文件管理。如果可以卸载,则可以读取和写入数据文件夹。如果你不卸载更新,那就没有办法了。Android 11的一些特性限制了对Android目录的访问,以保护隐私和安全。建议使用文档UI访问此处的文档。如果您非常信任此软件并且必须使用它,请向此文档管理软件的开发人员咨询标准文档UI授权功能。只要您在文档UI中授权访问软件,您就可以阅读它。
❺ 安卓11怎么解除文件访问限制
可以关闭相应的访问权限功能即可,具体的步骤如下所示:
1、首先,解锁华为手机手机进入后,在手机中选择设置的图标进入。如下图所示:
❻ 如何访问设备上Android app的目录
调试的时候,如果想查看自己app的files目录或者cache目录,可在adb shell命令行下这样操作:
$ run-as com.example.store
这样,就可作为该app的用户,访问app下目录和文件了。只要运行了这个命令,自动切换到该app的根目录下。
那么,是不是可以访问其他人的app呢?
如果要做到这点,首先要获取其他app的包名,这不是问题,运行如下代码:
PackageManager pm = getPackageManager();
for (ApplicationInfo app : pm.getInstalledApplications(0)) {
Log.d("storedemo", "package: " + app.packageName + ", " +
"sourceDir: " + app.sourceDir);
}
打印出需要的结果:
image
用豆瓣试试:
$ run-as com.douban.radio
run-as: Package ‘com.douban.radio’ is not debuggable
❼ 安卓11如何访问data
摘要 您好,很高兴为您解答。
❽ 如何访问android的asset目录和res目录下的文件
//从resources中的raw 文件夹中获取文件并读取数据
public String getFromRaw(){
String result = "";
try {
InputStream in = getResources().openRawResource(R.raw.test1);
//获取文件的字节数
int lenght = in.available();
//创建byte数组
byte[] buffer = new byte[lenght];
//将文件中的数据读到byte数组中
in.read(buffer);
result = EncodingUtils.getString(buffer, ENCODING);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
//从assets 文件夹中获取文件并读取数据
public String getFromAssets(String fileName){
String result = "";
try {
InputStream in = getResources().getAssets().open(fileName);
//获取文件的字节数
int lenght = in.available();
//创建byte数组
byte[] buffer = new byte[lenght];
//将文件中的数据读到byte数组中
in.read(buffer);
result = EncodingUtils.getString(buffer, ENCODING);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
来的,大概就是找到文件路径转成流,然后再读取出来转成字符串!