[英]How to let other app access my app's data like Google Drive app do
我想让其他应用访问我的应用数据,我发现Google云端硬盘应用可以做到。 例如,我有应用程序A,/ data / data / Package A中有一个文件,名称为/cache/1.txt,我希望应用程序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驱动私有数据,但是,我编写了应用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 Drive应用打开了文件的访问权限,因此其他应用可以访问。 提前致谢。
Context.openFileOutput可以使用MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE创建文件,其他应用程序可以访问该文件,该文件位于/ data / data / Package name / files文件夹中,这是Google Drive所提供的,顺便说一句,Android不建议使用这些常量,在API级别17中已弃用了常量,您应使用更正式的机制进行交互,例如ContentProvider,BroadcastReceiver和Service。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.