为什么一部Android手机会自动保存图片,而另一部却没有呢?

时间:2020-08-22 23:17:05

标签: c# android xamarin android-camera-intent

我在两个不同的手机上运行相同的应用程序。其中一部手机是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版本在内部保存图片方面是否有任何不同的表现?我有什么办法可以判断这种自动保存是否会发生?

0 个答案:

没有答案