app的要求:
我遇到过这篇文章(How can I let users access the internal storage directory of my app?),其中OP似乎想要我做同样的行为,并且似乎通过使用getExternalFilesDir()[最后发布]解决了这个问题,但是当我使用该方法时我的文件在我的应用以外的用户看不到。那么如何在我的应用程序中获得这两种功能呢?
externalDir = mContext.getExternalFilesDir(null);
File myDir = new File(externalDir.toString() + "/my_snapshots");
myDir.mkdirs()
String fname = "Image-" + n + ".jpg";
File file = new File(myDir, fname);
FileOutputStream out = new FileOutputStream(file);
MediaScannerConnection.scanFile(mContext, new String[] { file.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
答案 0 :(得分:1)
似乎通过使用getExternalFilesDir()
解决了这个问题
这是正确的解决方案。
当我使用该方法时,我的文件对我的应用以外的用户不可见
这是因为您没有使用MediaScannerConnection
及其scanFile()
方法对文件编制索引。完成此操作后,MTP客户端和使用MediaStore
的任何设备上的应用都会看到您的文件。