Ich benutze James Montemagno's Media Plugin um Fotos zu machen.Xamarin Forms - Media Plugin - Leere Thumbnails am Telefon
Aus irgendeinem Grund und nur beim Ausführen der Anwendung auf dem Telefon werden beim Erstellen von Fotos Miniaturansichten in TestFolder korrekt angezeigt, sie werden jedoch als leere Dateien angezeigt.
Bilder werden korrekt angezeigt, wenn sie im Emulator ausgeführt werden.
Dies ist mein Code:
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's 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;
}
Edit 1:
Kurz gesagt, aus irgendeinem Grund die Medien-Plugin nicht auf meinem Handy funktioniert (Huawei P8 Lite). Ich habe die Probe auf GitHub versucht: (Verwendung)
https://github.com/jamesmontemagno/MediaPlugin
Fotos im Emulator zeigen sich aber nicht am Telefon (die Kamera öffnet und nimmt Fotos). Wie ich oben erwähnt habe, wenn ich auf den Albumordner zugreife, erscheinen leere Thumbnails.
bearbeiten 2
Dies ist die Android-Manifest-Datei:
<?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>
Auch habe ich hinzugefügt:
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];
}
Beide Berechtigungen erteilten zurückzukehren.
bearbeiten 3
ich auf einem Samsung Galaxy A3 versucht haben und perfekt funktioniert, zeigt korrekt in der Kamerarolle und der App.
Aber wie Bilder erscheinen auf meinem Huawei P8 Handy-Kamera Roll Album:
bearbeiten 4
ich auf einem anderen Huawei P8 Gerät versucht haben und ich immer das gleiche Problem .
Der Fehler tritt sowohl bei iOS als auch bei Android auf? – apineda
Ich kann es nur auf Android testen. – rauland
Haben Sie die Manifest-Berechtigung hinzugefügt? –