我正在尝试启动一个意图,以便打开图像文件,我从互联网上下载。
我可以将图像文件下载到应用程序的内部存储空间,但我无法将其复制到Android设备上的public / Documents目录中,以启动意图。
这是我复制文件的方式
var bytes = System.IO.File.ReadAllBytes (privatePath);
Java.IO.File docFolder = new Java.IO.File (global::Android.OS.Environment.ExternalStorageDirectory + "/MyAppCache");
if (!docFolder.Exists ()) docFolder.Mkdir ();
Java.IO.File file = new Java.IO.File (docFolder.AbsolutePath, "cache.jpg");
file.CreateNewFile();
Java.IO.FileOutputStream fOut = new Java.IO.FileOutputStream (file);
fOut.Write (bytes);
fOut.Close ();
return file.AbsolutePath;
我用于
的返回路径global::Android.Net.Uri uri = global::Android.Net.Uri.Parse(FilePublisher.CopyToPublic());
StartActivity (new Intent (Intent.ActionView, uri));
我得到的结果是
No Activity found to handle Intent { act=android.intent.action.VIEW dat=/storage/emulated/0/MyAppCache/cache.jpg }
我检查了设备上的/ storage文件夹,其中甚至没有MyAppCache文件夹。
这里有什么问题?
答案 0 :(得分:1)
您在Intent
中传递的URI不包含该方案。您可以从错误中看到:
No Activity found to handle Intent { act=android.intent.action.VIEW dat=/storage/emulated/0/MyAppCache/cache.jpg }
"dat="
需要以file:///
开头。