Android 如何让其他应用程序访问我的应用程序';像谷歌硬盘应用程序这样的数据

Android 如何让其他应用程序访问我的应用程序';像谷歌硬盘应用程序这样的数据,android,android-permissions,Android,Android Permissions,我想让其他应用程序访问我的应用程序的数据,我发现谷歌驱动器应用程序可以做到。 例如,我有应用程序A,有一个文件位于/data/data/Package A name/cache/1.txt中,我希望应用程序B可以访问它 try { FileInputStream fin = new FileInputStream("/data/data/Package A name/cache/1.txt"); Integer i = fin.available(

我想让其他应用程序访问我的应用程序的数据,我发现谷歌驱动器应用程序可以做到。 例如,我有应用程序A,有一个文件位于/data/data/Package A name/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);
    }
事实上,谷歌硬盘应用程序有这个功能,我从谷歌硬盘下载文件1.txt,它是/data/data/com.Google.android.apps.docs/files/fileinternal/d36323c59e1519308c702675c4394e51/1.txt,它是谷歌硬盘的私有数据,但是,我写的是应用程序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可以访问它,它似乎像谷歌驱动器应用程序打开文件的访问权限,所以其他应用程序可以访问。提前感谢。

您应该阅读关于应用程序之间的信息,关于,然后带着更好的问题返回此处


也可以看到这个

Context.openFileOutput可以创建可由其他应用程序访问的模式为可读和可写的文件,它位于/data/data/Package name/files文件夹中,这是Google Drive做的,顺便说一句,Android不建议使用这些常量,此常量在API级别17中被弃用,您应该使用更正式的交互机制,如ContentProvider、BroadcastReceiver和Service。

我知道这一点,但Google Drive不是这样的,因为我可以直接在/data/data/com.Google.android.apps.docs中打开它的私有文件,我想知道Google Drive是怎么做的。如果您编写了应用程序A,并且在您/data/data/package A name中有一个文件,则除非设备已根目录,否则我无法直接打开它。