问题描述
我在两个不同的手机上运行相同的应用程序。其中一部手机是ZTE Maven(Android 5.1),另一部手机是Google Pixel 2(Android 10)。
Android 5.1手机会自动将使用相机拍摄的照片(通过Intent)保存到图库中。但是,Android 10手机不会将图片保存到“照片”(没有gallery应用程序)。
我的应用程序使用Xamarin.Forms,下面是相关代码:
public class CameraService : ICameraService
{
public Task<Stream> TakePhotoAsync()
{
var dir = MainActivity.Instance.ApplicationContext.FilesDir;
var imageFile = new File(dir,$"{Guid.NewGuid()}.jpg");
MainActivity.Instance.PhotoPath = imageFile.Path;
var imageUri = FileProvider.GetUriForFile(MainActivity.Instance,"com.(company).(appname).android.fileprovider",imageFile);
var intent = new Intent(MediaStore.ActionImageCapture);
intent.PutExtra(MediaStore.ExtraOutput,imageUri);
// Start the camera capture activity (resumes in MainActivity.cs)
MainActivity.Instance.StartActivityForResult(
intent,MainActivity.TakePhotoId);
// Save the taskcompletionsource object as a MainActivity property
MainActivity.Instance.TakePhototaskcompletionsource = new taskcompletionsource<Stream>();
// Return Task object
return MainActivity.Instance.TakePhototaskcompletionsource.Task;
}
}
很明显,我已经用“(company)”和“(appname)”代替了真实的公司名称和应用名称。
这些手机或Android版本在内部保存图片方面是否有任何不同的表现?我有什么办法可以判断这种自动保存是否会发生?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)