繁体   English   中英

如何让其他应用(例如Google云端硬盘应用)访问我的应用数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM