我的应用程序将其文件存储在{external storage}/Documents/myappname/file.anyextension
中。这是我使用File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOCUMENTS), MYAPPNAME);
我正在尝试创建一个意图,在图库中的其他应用中打开此文件,以防它是图片。可悲的是它不起作用,只打开画廊或使应用程序崩溃。我试过了:
{external storage}/Documents
文件夹中的文件。 (只有形状{external storage}/appname
的缓存/内部或外部文件适用当我使用文件管理器选择此文件时,它会给我一个网址:content://com.android.externalstorage.documents/document/primary%3ADocuments%2FmyAppName%2Ficon512.png
我怎样才能获得这样的网址?
以下是我的代码现在的样子:
Intent intentShareFile = new Intent(Intent.ACTION_VIEW);
String filePath = getFilePath();
Log.d(TAG, "shareFileButton: " + filePath);
File fileWithinMyDir = new File(filePath);
intentShareFile.setData(Uri.fromFile(fileWithinMyDir));
if (fileWithinMyDir.exists()) {
intentShareFile.setType("*/*");
startActivity(Intent.createChooser(intentShareFile, "Open file"));
} else {
Log.d(TAG, "file doesn't exist here");
}
答案 0 :(得分:0)
找到解决方案......来自setType的文档:
此方法会自动清除以前设置的所有数据(例如{@link #setData})。
感谢您的帮助!