您如何在Android中请求MANAGE_EXTERNAL_STORAGE权限?

来自 Android 文档,https://developer.android.com/training/data-storage/manage-all-files#all-files-access

“应用程序可以通过执行以下操作来请求用户访问所有文件:

在清单中声明MANAGE_EXTERNAL_STORAGE权限。

使用ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION 意图操作将用户引导至系统设置页面,他们可以在其中为您的应用启用以下选项:允许访问管理所有文件。”

我试过的

我知道如何请求权限的唯一方法是使用ActivityCompat. 我试过了:

ActivityCompat.requestPermissions(this, new String[]{Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION},1);

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.MANAGE_EXTERNAL_STORAGE},1);

两者都不做任何事情。

Android 文档内容广泛,但对新手来说并不是最欢迎的。我了解意图,并且知道它们可用于在活动之间切换,但我不知道什么是“意图操作”以及如何使用它来请求权限

回答

在科特林:

    val uri = Uri.parse("package:${BuildConfig.APPLICATION_ID}")

    startActivity(
      Intent(
        Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION,
        uri
      )
    )

(来自这个示例项目)

您可能已经习惯了隐式Intent( Intent(this, SomeActivity::class.java))。文档要求您使用显式Intent, 带有操作字符串的,在本例中为Uri. 在Uri将有package计划,并通过应用ID识别您的应用程序。

该代码片段将启动系统提供的活动,理论上,该活动将让用户选择授予您的应用程序MANAGE_EXTERNAL_STORAGE权限。

Android 文档很广泛,但对新手来说并不是最欢迎的

您可能希望考虑阅读一本书或参加一门课程。任何像样的书或课程都会涵盖Intent行动的概念。


以上是您如何在Android中请求MANAGE_EXTERNAL_STORAGE权限?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>