Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.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_Storage_Shared_Internal - Fatal编程技术网

Android共享内部存储

Android共享内部存储,android,storage,shared,internal,Android,Storage,Shared,Internal,在任何基于Android的设备上都有共享内部存储吗?我知道你可以使用SD卡作为应用程序之间的共享文件位置,但对于我正在进行的项目,我们不希望SD卡丢失(敏感材料) 问题如下。App1允许用户浏览(例如)一些word文档并将其下载到建议的共享存储中,然后用户可以将此文件传递给documents 2,然后编辑它们并保存更改。然后,应用程序1允许上传更改的文件 我不喜欢将文档编辑器word/excel直接构建到应用程序中,除非这很容易 编辑: 第二个应用程序是“Documents 2 Go”,我将无法

在任何基于Android的设备上都有共享内部存储吗?我知道你可以使用SD卡作为应用程序之间的共享文件位置,但对于我正在进行的项目,我们不希望SD卡丢失(敏感材料)

问题如下。App1允许用户浏览(例如)一些word文档并将其下载到建议的共享存储中,然后用户可以将此文件传递给documents 2,然后编辑它们并保存更改。然后,应用程序1允许上传更改的文件

我不喜欢将文档编辑器word/excel直接构建到应用程序中,除非这很容易

编辑:

第二个应用程序是“Documents 2 Go”,我将无法编辑其AndroidManifest,我相信这是您的解决方案。这是Android推荐的在不同应用程序之间共享应用程序数据的方法。

在应用程序之间共享数据是ContentProviders的目的。假设您知道如何编写和访问ContentProvider,则可以通过ParcelFileDescriptor访问文件,其中包括创建文件的模式的常量

您现在需要的是限制访问权限,以便不是每个人都可以通过内容提供商读取文件,您可以通过android权限来实现这一点。在你的一个应用的清单中,一个将承载文件和内容提供商的应用,写下如下内容:

<permission android:name="com.example.android.provider.ACCESS" android:protectionLevel="signature"/>

在这两个应用程序中添加以下内容:

<uses-permission android:name="com.example.android.provider.ACCESS" /> 


通过使用protectionLevel=“signature”,只有您签名的应用程序才能访问您的内容提供商,从而访问您的文件。

对于txt文件,我现在也遇到了类似的情况,我做到了这一点

File downloadedFile= new File( context.getFilesDir(), "simple.txt" );
downloadedFile.setReadable( true, false );
downloadedFile.setWritable( true, false ); //set read/write for others
Uri downloadFileUri = Uri.fromFile( downloadedFile );
Intent intentToEditFile = new Intent( Intent.ACTION_EDIT );
intentToEditFile.setDataAndType( downloadFileUri, "text/plain" );
context.startActivity( intentToEditFile );
现在将启动“Document 2 Go”编辑器来编辑文件和 将能够编辑simple.txt

注意1:Uri应该从使用设置的相同文件对象创建
setReadable()/setWritable

注2:其他用户的读/写权限可能不会反映在文件中
系统。有时我看不到rw-rw-in-adb shell

可以尝试内容提供者我也尝试过-fos=openFileOutput(“test4.doc”,Context.MODE\u WORLD\u READABLE);允许读取但不保存文件的模式\u WORLD\u WRITEABLE不允许docs2go读取文件:(我无法访问两个应用中的清单,只能访问我们的应用