奇怪的问题....当我执行一个ActionView意图来查看whith默认的图库应用程序时,例如在下载文件夹中的图像,它足以设置正确的mime类型,而无需指定文件扩展名。 / p>
例如,查看xamarin的c#代码:
string myImage = Path.Combine(Environment.ExternalStorageDirectory.Path, Environment.DirectoryDownloads, "myImage")
Intent intent = new Intent(Intent.ActionView);
intent.SetDataAndType(Uri.FromFile(new File(myImage)), "image/jpeg");
StartActivity(intent);
即使 myImage 是没有扩展名的jpeg文件(通常我应该使用 myImage.jpg ),这也可以正常工作。
但是,如果我想打开位于缓存中的相同图像,使用FileProvider提供正确的权限,在我明确设置.jpg扩展之前它不会工作。
//Assuming myImage is a valid jpeg just present in cache
string myImage= Path.Combine(CacheDir.AbsolutePath, "myImage");
Uri imageUri = Android.Support.V4.Content.FileProvider.GetUriForFile(this, "com.myapp.fileprovider", new File(myImage));
Intent intent = new Intent(Intent.ActionView);
intent.SetFlags(ActivityFlags.GrantReadUriPermission);
intent.SetDataAndType(imageUri, "image/jpeg");
StartActivity(intent);
这不起作用,画廊说不能找到元素。
但如果我在 myImage.jpg 中重命名文件和内容变量,则图库会正确显示图像。
由于我必须下载几个mime类型但没有名称的文件,所以我只想依赖特定的类型来避免附加文件扩展名。
有没有人遇到同样的问题?