我想让其他应用访问我应用的数据,我发现Google云端硬盘应用可以做到。 例如,我有app A,有一个文件位于/ data / data / Package A name / cache / 1.txt,我希望app B可以访问它,
try
{
FileInputStream fin = new FileInputStream("/data/data/Package A name/cache/1.txt");
Integer i = fin.available();
Log.w("test", i.toString());
}
catch (Exception e)
{
Log.w("test", e);
}
事实上,Google云端硬盘应用具有此功能,我从Google云端硬盘下载文件1.txt,它是/data/data/com.google.android.apps.docs/files/fileinternal/d36323c59e1519308c702675c4394e51/1.txt,它是Google Drive的私人数据,但是,我写了应用C,代码是这个
try
{
FileInputStream fin = new FileInputStream("/data/data/com.google.android.apps.docs/files/fileinternal/d36323c59e1519308c702675c4394e51/1.txt");
Integer i = fin.available();
Log.w("test", i.toString());
}
catch (Exception e)
{
Log.w("test", e);
}
应用C可以访问它,似乎Google云端硬盘应用可以打开该文件的访问权限,因此其他应用可以访问。提前谢谢。
答案 0 :(得分:1)
您应该在应用程序之间阅读sending and receiving content,关于content providers并在此处返回更好的问题。
另见example
答案 1 :(得分:0)
Context.openFileOutput可以使用MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE创建文件,该文件可以被其他应用程序访问,它位于/ data / data / Package name / files文件夹中,顺便说一句,Android驱动程序不会建议使用这些常量,这个常量在API级别17中已弃用,您应该使用更正式的交互机制,例如ContentProvider,BroadcastReceiver和Service。