首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android共享内部存储

Android共享内部存储
EN

Stack Overflow用户
提问于 2012-06-28 17:02:45
回答 3查看 11.7K关注 0票数 5

在任何基于Android的设备上有没有共享内存这样的东西?我知道您可以使用SDCard作为应用程序之间的共享文件位置,但对于我正在从事的一个项目,我们不希望SD卡丢失(敏感材料)的功能。

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

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

编辑:

第二个应用是"Documents 2 Go“我不能编辑它的AndroidManifest

EN

回答 3

Stack Overflow用户

发布于 2014-11-24 16:11:40

对于txt文件,我现在遇到了类似的情况,于是我这样做了。

代码语言:javascript
复制
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-

票数 1
EN

Stack Overflow用户

发布于 2012-06-28 17:09:21

我相信ContentProviders就是你的解决方案。这是Android推荐的在不同应用程序之间共享应用程序数据的方法。

票数 0
EN

Stack Overflow用户

发布于 2012-06-28 17:10:16

https://stackoverflow.com/a/6708681/804447

在应用程序之间共享数据是ContentProviders的作用。假设您知道如何编写ContentProvider并访问它,您可以通过ParcelFileDescriptor访问文件,它包含用于创建文件的模式的常量。

你现在需要的是限制访问,这样不是每个人都可以通过内容提供商读取文件,而你可以通过android权限来做到这一点。在您的一个应用程序的清单中,将托管文件和内容提供商,编写如下内容:

代码语言:javascript
复制
<permission android:name="com.example.android.provider.ACCESS" android:protectionLevel="signature"/>

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

代码语言:javascript
复制
<uses-permission android:name="com.example.android.provider.ACCESS" /> 

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11241282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档