Android 检查内部存储器上是否存在全局文件
我正在尝试用一个应用程序创建一个文件,并检查另一个应用程序是否存在该文件。im试图实现的是缓存中的全局文件,设备上的任何应用程序都可以访问该文件。我读过这个:还有。但我似乎迷路了。每次我从另一个应用检查时都会创建新文件,第一个应用是否创建了文件Android 检查内部存储器上是否存在全局文件,android,file,internal-storage,Android,File,Internal Storage,我正在尝试用一个应用程序创建一个文件,并检查另一个应用程序是否存在该文件。im试图实现的是缓存中的全局文件,设备上的任何应用程序都可以访问该文件。我读过这个:还有。但我似乎迷路了。每次我从另一个应用检查时都会创建新文件,第一个应用是否创建了文件 private boolean doesFileExist() { File file = new File(this.getCacheDir().toString() + "myfile"); if(file.exist
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也在内部存储上。请帮助我。我找不到任何不适用于应用程序本身的方法。既不用于内部存储,也不用于外部存储。我建议你重新考虑一下你的整个计划,我试图实现的是缓存中的全局文件,它可以被设备上的任何应用程序访问。无论你试图解决什么问题,都可以用其他方法更安全地解决。我找不到任何上下文方法不是特定于单个应用程序的。请帮我看看这个?