Ich verwende aus Gründen der Abwärtskompatibilität eine direkte Kamera-API . Die Kameraansicht selbst wird leicht von einer Bildansicht überlagert und meine Oberfläche ändert dies:
%Vor% funktioniert auf allen älteren Geräten. Ich habe die Vorschaugröße in surfaceCreated
auf die größte verfügbare Größe festgelegt.
Aber auf Android 7.1 ist es plötzlich schwarz (auf einem Nexus 6 und Moto X Play, wahrscheinlich anderen - also auf verschiedenen Geräten).
Die SurfaceView
selbst ist in Layout Inspector
( willNotDraw = true
), aber VISIBLE
(und hardwarebeschleunigt) ausgegraut.
Seltsamerweise kann ich immer noch Fotos machen, Ereignis ohne Vorschau, und die Daten im Vorschau-Callback enthalten ein Bild.
Zur gleichen Zeit bekomme ich das folgende Protokoll
%Vor%Hat jemand anderes ein komplett schwarzes Bild in Android 7 erlebt? Gibt es irgendwelche einfachen Fixes? (Wie den Inhalt von Daten direkt zeichnen?)
Schwarzer Bildschirm wird angezeigt, da Sie keine Kameraberechtigung für Android 7-Gerät haben
Gehe zu Einstellungen- & gt; apps- & gt; wähle deine App- & gt; Berechtigungen- & gt; Aktiviere Kamera-Erlaubnis und überprüfe
Sie können dies auch in Ihrem Code behandeln
Fügen Sie Ihrem Manifest die folgende Berechtigung hinzu
%Vor%Wenn Sie um Erlaubnis fragen, können Sie so anrufen.
%Vor%Um die Erlaubnis für den Zugriff auf die Kamera zu prüfen
%Vor%Nun der Rückruf, wenn der Benutzer eine Aktion ausgeführt hat.
%Vor%Hier ist ein vollständiges Beispiel
%Vor% Wie @apk schon gesagt hat, wird ein schwarzer Bildschirm angezeigt, weil Sie keine Berechtigungen in Ihrem Code bearbeiten. Wenn Sie mit targetSdkVersion 23
(und höher) arbeiten, müssen Sie zur Laufzeit Benutzerrechte anfordern.
Der vorherige Kommentar erklärt Ihnen, wie Sie ihn direkt über die SDK-Vorgänge beheben können, aber ich bevorzuge eine große Third-Party-Bibliothek für diese Fälle: Karumi / Dexter
Überprüfen Sie die Laufzeitberechtigungen für Android-Kameras
Wenn die Erlaubnis nicht erlaubt ist, zeigt die Kamera einen leeren Bildschirm.
für weitere Details: