level 3
用途:访问data文件夹进行文件替换的操作
困扰:呜呜呜以前的那个代码可以用不知道为什么现在就不可以了,我也是服了呜呜呜
2023年01月16日 12点01分
1
level 11
安卓11以上建议放弃,安卓11还可以适配下,再往上直接放弃data目录吧
2023年01月16日 17点01分
2
安卓11-13可以搞,已经解决了
2023年01月16日 17点01分
方便问你个小白问题吗,就一个属性?
2023年01月16日 17点01分
level 7
安卓11开始,每个应用都有专属的分区存储,卸载后系统也将删除你的分区所有数据,应用也无法在读取其他应用的数据。
如果你的应用需求要在 根目录 或者 你的专属分区以外的目录 进行文件操作或读取文件的话,你就需要开启 安卓11的开启所有文件访问权限。
否则安卓11的用户将无法读取以及修改,导致你应用功能失效甚至闪退。
//增加权限
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
//V5的代码
// 首先是判断系统版本是否等于或大于安卓11
rg sdk >= 30
{
// 异常处理
yc
{
// 获得 android.os.Environment.class cs类型为java.lang.Class
s cs = android.os.Environment.lei
// 获得 isExternalStorageManager方法 m类型为java.lang.reflect.Method
s m = cs.getMethod("isExternalStorageManager", null)
// 执行方法 o类型为Object的boolean
s o = m.invoke(cs, null)
// 判断 o 是否为 true 如果true说明已开启, false 说明没有开启
rg o.equals(true)
{
gj.ts("早已开启了")
}, {
// 跳转至设置界面,开启所有文件访问权限
android.content.Intent it = cj.android.content.Intent("android.settings.MANAGE_ALL_FILES_ACCESS_PERMISSION")
lei.startActivity(it)
}
},{
gj.sc("出现异常")
}
}
//V3的代码
javags(sdk, null, "android.os.Build$VERSION", "SDK_INT")
f(sdk >= 30)
{
cls("android.os.Environment", cs)
javax(o, null, cs, "isExternalStorageManager")
f(o == true)
{
tw("早已开启了")
}
else
{
javanew(it, "android.content.Intent", "String", "android.settings.MANAGE_ALL_FILES_ACCESS_PERMISSION")
java(b, activity, "android.app.Activity.startActivity", "android.content.Intent", it)
}
}
2023年01月18日 03点01分
3
v3 v5都有
2023年01月18日 03点01分
有些应用可以弹出data文件夹的访问授权窗口,怎么让一些其他的应用也得到授权
2023年02月20日 20点02分