繁体   English   中英

如何保存应用程序外部用户可以访问的文件,以及如何在应用程序卸载时删除文件?

[英]How to save a file that is accessible to the user outside of the app and also deletes on app uninstall?

应用要求:

  • 保存的文件在库存设备的文件浏览器中可见。 (用于用户操作)
  • 卸载应用程序后,文件将被删除。

我碰到了这篇文章( 如何让用户访问应用程序的内部存储目录? ),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);
                }
            });

似乎通过使用getExternalFilesDir()解决了它

那是正确的解决方案。

当我使用该方法时,我的文件对我的应用程序外部的用户不可见

那是因为您没有使用MediaScannerConnection及其scanFile()方法索引文件。 完成此操作后,MTP客户端和所有使用MediaStore的设备上应用程序都将看到您的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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