在Xamarin.Android项目中,我正在使用Xam.Plugin.Media拍照 我想事先知道文件夹中的图片会被存储 有什么方法可以知道吗?
答案 0 :(得分:1)
按照源代码Xam.Plugin.Media
TakePhotoAsync
- > CreateMediaIntent
- > MediaPickerActivity.GetOutputMediaFile
您可以找到默认目录:
var directory = saveToAlbum ? Environment.GetExternalStoragePublicDirectory(mediaType) : context.GetExternalFilesDir(mediaType);
因此插件只提供了两种存储路径,一个是GetExternalStoragePublicDirectory
,另一个是GetExternalFilesDir
。默认情况下,saveToAlbum
为false,它将存储在 data / media / Android / data / your.package.name / files / 中。如果saveToAlbum
为真,则照片将存储在 DCIM 文件夹中。
在Andorid 6.0中测试以下代码:
takePhoto = FindViewById<Button>(Resource.Id.takephoto);
takePhoto.Click += async (sender, args) =>
{
await CrossMedia.Current.Initialize();
if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
{
return;
}
var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
Directory = "Sample",
Name = "test.jpg"
});
if (file == null)
return;
};
你可以找到test.jpg存储在这里:
我想事先知道图片将存储在哪个文件夹中
该插件不提供可以获取var directory
的界面。所以你不能提前通过编码来获得路径。