我有不同存储类型的抽象,一个通过普通的文件I / O(不是AndroID内容提供商的东西)实现本地存储.在这个类中,我得到一个文件路径(如/ mnt / sdcard / …或/ data / data / …),在访问该文件(读写模式)之前,我想检查是否需要调用WRITE_EXTERNAL_STORAGE的RequestPermissions.
所以问题是:确定文件是否可以在没有该权限的情况下读取和写入(例如因为它在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 bygetExternalfilesDir(String)
andgetExternalCacheDir()
.
首先,我建议您避免使用Intents请求权限,因为这是一种最佳实践,可以提高用户体验.
如果您不能使用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全部内容,希望文章能够帮你解决android – 如何知道何时需要WRITE_EXTERNAL_STORAGE所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)