Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 检查内部存储器上是否存在全局文件_Android_File_Internal Storage - Fatal编程技术网

Android 检查内部存储器上是否存在全局文件

Android 检查内部存储器上是否存在全局文件,android,file,internal-storage,Android,File,Internal Storage,我正在尝试用一个应用程序创建一个文件,并检查另一个应用程序是否存在该文件。im试图实现的是缓存中的全局文件,设备上的任何应用程序都可以访问该文件。我读过这个:还有。但我似乎迷路了。每次我从另一个应用检查时都会创建新文件,第一个应用是否创建了文件 private boolean doesFileExist() { File file = new File(this.getCacheDir().toString() + "myfile"); if(file.exist

我正在尝试用一个应用程序创建一个文件,并检查另一个应用程序是否存在该文件。im试图实现的是缓存中的全局文件,设备上的任何应用程序都可以访问该文件。我读过这个:还有。但我似乎迷路了。每次我从另一个应用检查时都会创建新文件,第一个应用是否创建了文件

private boolean doesFileExist() {
        File file = new File(this.getCacheDir().toString() + "myfile");
        if(file.exists()) {
            return true;
        }
        else return false;
    }

    private void createFileForMe() {
        File file = new File(this.getCacheDir().toString() + "myfile", "myfile");
        file.setReadable(true, false);
        Log.v("FILE", "created file");
    }

public void onCreate() {
        super.onCreate();
            if (!doesFileExist()) {
                Log.v("FILE", "FILE DOESnt EXIST");
                createFileForMe();
            } else Log.v("FILE", "FILE DOES EXIST");
    }
getCacheDir的Android Javadoc说:

返回特定于应用程序的缓存目录的绝对路径 在文件系统上

这意味着它只对单个应用程序可用。相同的方法为第二个应用程序返回不同的位置。这些应用无法使用上述方法共享缓存

您必须选择另一个共享数据的位置。请注意,内部存储的大部分空间受到限制。也许最好在逻辑上使用内置外部存储,而不是SD卡

更新

我看到两种选择:

将数据存储在公共位置的外部存储器上,您可以阅读相关信息 使用ContentProvider将内部存储上的私人数据共享给其他应用程序,您可以阅读相关信息
我正在尝试用一个应用程序创建一个文件,并检查另一个应用程序是否存在该文件。im试图实现的是缓存中的全局文件,设备上的任何应用程序都可以访问该文件-getCacheDir不是全局文件。每个应用程序都有内部存储上的getCacheDir返回的自己的目录。我刚刚尝试了GetFileDir,但仍然得到相同的结果。GetFileDir也在内部存储上。请帮助我。我找不到任何不适用于应用程序本身的方法。既不用于内部存储,也不用于外部存储。我建议你重新考虑一下你的整个计划,我试图实现的是缓存中的全局文件,它可以被设备上的任何应用程序访问。无论你试图解决什么问题,都可以用其他方法更安全地解决。我找不到任何上下文方法不是特定于单个应用程序的。请帮我看看这个?