根资源管理器Android 11(API 30)



当我以api 30为目标并尝试检索路径中的文件列表时"数据/数据";(拥有root权限(,我只获得应用程序的文件夹,而使用api 29或更低版本,我可以获得所有存在的文件。

即使使用api 30,我如何检索所有文件?

使用的代码:

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import com.topjohnwu.superuser.Shell
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val result = Shell.su("ls -la /data/data").exec()
Log.e("files", result.out.toString())
}
}

我使用此库作为root用户:https://github.com/topjohnwu/libsu

以下是Android 11中添加的新限制:https://developer.android.com/about/versions/11/privacy/storage

文档访问限制

为了给开发人员时间进行测试,以下更改与>到存储访问框架(SAF(生效仅当您的应用程序针对Android 11或更高版本时。

访问目录

您不能再使用ACTION_OPEN_DOCUMENT_TREE请求访问以下目录的意向操作:

  • 内部存储卷的根目录
  • 设备制造商认为可靠的每个SD卡卷的根目录,无论该卡是否可靠是模拟的或可移除的。可靠的音量是指应用程序可以大部分时间都能成功访问
  • 下载目录

访问文件

您不能再使用ACTION_OPEN_DOCUMENT_TREE或打开文档操作intent操作,请求用户从中选择各个文件以下目录:

  • Android/data/目录和所有子目录
  • Android/obb/目录和所有子目录

最新更新