Android共享内部存储
在任何基于Android的设备上都有共享内部存储吗?我知道你可以使用SD卡作为应用程序之间的共享文件位置,但对于我正在进行的项目,我们不希望SD卡丢失(敏感材料) 问题如下。App1允许用户浏览(例如)一些word文档并将其下载到建议的共享存储中,然后用户可以将此文件传递给documents 2,然后编辑它们并保存更改。然后,应用程序1允许上传更改的文件 我不喜欢将文档编辑器word/excel直接构建到应用程序中,除非这很容易 编辑: 第二个应用程序是“Documents 2 Go”,我将无法编辑其AndroidManifest,我相信这是您的解决方案。这是Android推荐的在不同应用程序之间共享应用程序数据的方法。 在应用程序之间共享数据是ContentProviders的目的。假设您知道如何编写和访问ContentProvider,则可以通过ParcelFileDescriptor访问文件,其中包括创建文件的模式的常量 您现在需要的是限制访问权限,以便不是每个人都可以通过内容提供商读取文件,您可以通过android权限来实现这一点。在你的一个应用的清单中,一个将承载文件和内容提供商的应用,写下如下内容:Android共享内部存储,android,storage,shared,internal,Android,Storage,Shared,Internal,在任何基于Android的设备上都有共享内部存储吗?我知道你可以使用SD卡作为应用程序之间的共享文件位置,但对于我正在进行的项目,我们不希望SD卡丢失(敏感材料) 问题如下。App1允许用户浏览(例如)一些word文档并将其下载到建议的共享存储中,然后用户可以将此文件传递给documents 2,然后编辑它们并保存更改。然后,应用程序1允许上传更改的文件 我不喜欢将文档编辑器word/excel直接构建到应用程序中,除非这很容易 编辑: 第二个应用程序是“Documents 2 Go”,我将无法
<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读取文件:(我无法访问两个应用中的清单,只能访问我们的应用