在任何基于Android的设备上有没有共享内存这样的东西?我知道您可以使用SDCard作为应用程序之间的共享文件位置,但对于我正在从事的一个项目,我们不希望SD卡丢失(敏感材料)的功能。
问题如下。App1允许用户浏览(例如)一些word文档并将其下载到建议的共享存储,然后用户可以将此文件传递给文档2去编辑它们并保存更改。然后,应用程序1允许上传更改后的文件。
我不喜欢将文档编辑器word/excel直接构建到应用程序中,除非这很容易?
编辑:
第二个应用是"Documents 2 Go“我不能编辑它的AndroidManifest
发布于 2014-11-24 16:11:40
对于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:其他用户的读写权限可能不会反映在文件系统中。有时我在adb shell中看不到rw-
发布于 2012-06-28 17:09:21
我相信ContentProviders就是你的解决方案。这是Android推荐的在不同应用程序之间共享应用程序数据的方法。
发布于 2012-06-28 17:10:16
https://stackoverflow.com/a/6708681/804447
在应用程序之间共享数据是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=“签名”,只有您签名的应用程序才能访问您的内容提供商,从而访问您的文件。
https://stackoverflow.com/questions/11241282
复制相似问题