Heard 安卓Q引入了一项新的安全功能,称为“范围存储”它限制访问外部存储中的文件。我的问题是我必须将文本文档从应用程序保存到用户指定的位置。这是否需要任何形式的许可而不是READ_EXTERNAL_STORAGE
and WRITE_EXTERNAL_STORAGE
在 Q 设备中?
我的问题是我必须将文本文档从应用程序保存到用户指定的位置
Use ACTION_CREATE_DOCUMENT
允许用户指定位置。您可以使用ContentResolver
和它的openOutputStream()
方法得到一个OutputStream
为了Uri
你从那里回来ACTION_CREATE_DOCUMENT
。然后您可以将文本写入其中OutputStream
.
这是否需要任何类型的权限而不是 Q 设备中的 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE ?
ACTION_CREATE_DOCUMENT
无需任何权限,可回溯到 Android 4.4。
或者,您可以将文件写入由getExternalFilesDir()
on Context
。这部分外部存储对 Android Q 上的用户可见,不需要额外的权限。
或者,如果你保留你的targetSdkVersion
到 28 或更低,您可以使用WRITE_EXTERNAL_STORAGE
并在您想要的位置写入,就像在 Android 9.0+ 上所做的那样。但是,请记住,这种方法将不再适用于 Android R,并且当您提高targetSdkVersion
超过 28 小时(例如,为了遵守 2020 年的 Play 商店要求)。所以,使用ACTION_CREATE_DOCUMENT
, 也许getExternalFilesDir()
,是更好的长期答案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)