gpt4 book ai didi

android - 如何知道何时需要 WRITE_EXTERNAL_STORAGE

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:38 27 4
gpt4 key购买 nike

我正在将我的 Android 应用程序的目标 SDK 版本升级到 23 (Android M),它具有新的运行时权限 (https://developer.android.com/training/permissions/requesting.html)。我的应用已声明 WRITE_EXTERNAL_STORAGE在它的 list 中,现在我必须在运行时请求它。当然,我只想在必要时请求它。

我对不同的存储类型有一个抽象,一种是通过普通文件 I/O(不是 Android 内容提供程序的东西)实现本地存储。在这个类中,我得到一个文件路径(如/mnt/sdcard/...或/data/data/...),在访问该文件(读写模式)之前,我想检查是否必须调用RequestPermissions WRITE_EXTERNAL_STORAGE。

所以问题是:确定是否可以在没有该权限的情况下读取和写入文件(例如,因为它在 getExternalFilesDir() 中)的最安全和最简单的方法是什么?

最佳答案

可以看到here你只需要问 WRITE_EXTERNAL_STORAGE当您的应用程序需要写入外部存储时。但是:

Starting in API level 19, this permission is not required to read/write files in your application-specific directories returned by getExternalFilesDir(String) and getExternalCacheDir().

首先,我建议您避免使用 Intent 请求权限,因为这是最佳实践,可以大大改善用户体验。

如果您不能使用 Intent 来避免用您的应用程序编写,并且您知道有一天用户将不得不在外部编写,我认为最好是请求权限用户第一次采用“写入外部存储”路径。

据我所知,在 API23 中你只需要请求一次权限,所以我认为最简单的方法是在用户需要功能的第一时间请求权限,我认为当他将再次执行它,权限仍将被接受。您可以使用显示的过程检查您授予的权限 here .

Here你可以阅读:

The user is prompted to give permission once, either at run time or at install time (depending on the user's Android version). After that, your app can perform the operation without requiring additional interaction from the user. However, if the user doesn't grant the permission (or revokes it later on), your app becomes unable to perform the operation at all.

关于android - 如何知道何时需要 WRITE_EXTERNAL_STORAGE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34580638/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com