Я использую медиа-плагин Джеймса Монтеманьо, чтобы делать фотографии.
По какой-то причине и только при запуске приложения на моем телефоне при съемке фотоснимков эскизы отображаются правильно в TestFolder, но они отображаются как пустые файлы.
Изображения отображаются правильно при работе в эмуляторе.
Это мой код:
public async Task<MediaFile> TakePhoto() {
MediaFile result = null;
await CrossMedia.Current.Initialize();
if (CrossMedia.Current.IsCameraAvailable && CrossMedia.Current.IsTakePhotoSupported) {
// Supply media options for saving our photo after it taken.
var mediaOptions = new Plugin.Media.Abstractions.StoreCameraMediaOptions {
SaveToAlbum = true,
Directory = "TestFolder",
Name="test.jpg"
};
// Take a photo of the business receipt.
result = await CrossMedia.Current.TakePhotoAsync(mediaOptions);
}
return result;
}
Изменить 1:
Короче говоря, по какой-то причине плагин Media не работает на моем телефоне (Huawei P8 Lite). Я пробовал образец на GitHub: (Использование)
https://github.com/jamesmontemagno/MediaPlugin
Фотографии отображаются в эмуляторе, но не на телефоне (камера открывает и фотографирует). Как я упоминал выше, если я получаю доступ к папке альбома, появятся пустые миниатюры.
Изменить 2
Это файл манифеста android:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="15" />
<application android:label="MediaPluginTests.Droid"></application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
</manifest>
Также я добавил:
var cameraStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Camera);
var storageStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage);
if (cameraStatus != PermissionStatus.Granted || storageStatus != PermissionStatus.Granted) {
var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Camera, Permission.Storage });
cameraStatus = results[Permission.Camera];
storageStatus = results[Permission.Storage];
}
Оба разрешения возвращаются как предоставленные.
Изменить 3
Я пробовал Samsung Galaxy A3 и отлично работает, правильно отображается в ролике камеры и приложении.
Но это как изображения появляются на моем альбоме с камерой телефона Huawei P8:
Изменить 4
Я попытался использовать другое устройство Huawei P8 и получаю ту же проблему.