Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 授予第三方应用程序读/写由我的应用程序使用内容提供程序创建的文件_Android_Android Contentprovider_File Permissions - Fatal编程技术网

Android 授予第三方应用程序读/写由我的应用程序使用内容提供程序创建的文件

Android 授予第三方应用程序读/写由我的应用程序使用内容提供程序创建的文件,android,android-contentprovider,file-permissions,Android,Android Contentprovider,File Permissions,我正在创建一个简单的应用程序,用于从服务器下载文档并将其保存到SDCard根文件夹。我能够成功地做到这一点。 现在我想要我的另一个应用程序来读取/编辑在使用内容提供商之前创建的文件。我正在尝试通过提供程序共享文件/文件夹,但当我尝试在共享文件夹位置创建新的RandomAccessFile时,会出现权限错误: java.io.FileNotFoundException: /storage/8539-1916/Folder: at libcore.io.IoBridge.open(IoBridge.

我正在创建一个简单的应用程序,用于从服务器下载文档并将其保存到SDCard根文件夹。我能够成功地做到这一点。 现在我想要我的另一个应用程序来读取/编辑在使用内容提供商之前创建的文件。我正在尝试通过提供程序共享文件/文件夹,但当我尝试在共享文件夹位置创建新的RandomAccessFile时,会出现权限错误:

java.io.FileNotFoundException: /storage/8539-1916/Folder: at libcore.io.IoBridge.open(IoBridge.java:455)
04-21 04:36:44.493  6118  9673 E TAG    : Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
04-21 04:36:44.493  6118  9673 E TAG    :      at libcore.io.Posix.open(Native Method)
04-21 04:36:44.493  6118  9673 E TAG    :      at libcore.io.BlockGuardOs.open(BlockGuardOs.java:187)
04-21 04:36:44.493  6118  9673 E TAG    :      at libcore.io.IoBridge.open(IoBridge.java:441)

有人能帮我举一个例子,说明如何将文件夹共享给另一个应用程序,以便通过内容提供商写入/读取文件吗?

“我能够成功地做到这一点”——在很多设备上都没有。自安卓4.4以来,我们一直无法可靠访问上的任意位置。这是安卓10新增的外部和可移动存储新限制的基础。“有人能帮我举个例子吗?”。谢谢分享信息,所以我的应用程序使用android:sharedUserId=“android.uid.system”作为系统级应用程序签名,这是我第一次使用SD卡编写应用程序。该限制是否也适用于系统签名的应用程序?我无法回答这个问题--要使
sharedUserId
正常工作,您的应用程序需要通过固件签名密钥进行签名。无论是谁设置了该固件,都应该知道关于该设备上可移动存储的规则。可以看看这个,这可能会对您有所帮助。这是关于Android系统应用程序和sharedUserId的使用。“我能够成功地做到这一点”——在很多设备上都没有。自安卓4.4以来,我们一直无法可靠访问上的任意位置。这是安卓10新增的外部和可移动存储新限制的基础。“有人能帮我举个例子吗?”。谢谢分享信息,所以我的应用程序使用android:sharedUserId=“android.uid.system”作为系统级应用程序签名,这是我第一次使用SD卡编写应用程序。该限制是否也适用于系统签名的应用程序?我无法回答这个问题--要使
sharedUserId
正常工作,您的应用程序需要通过固件签名密钥进行签名。无论是谁设置了该固件,都应该知道关于该设备上可移动存储的规则。可以看看这个,这可能会对您有所帮助。这是关于Android系统应用程序和sharedUserId的使用。