En son Marshmallow yapısında, özellikle de fenerde kamerayla ilgili bir sorunum var. herhangi bir önceden Hatmi sürümünde I/kapama flaş açmak için yapmanız gereken tek şey şu oldu:Marshmallow'da el feneri kontrolü
private void turnFlashOn(final Camera camera, int flashLightDurationMs) {
if (!isFlashOn()) {
final List<String> supportedFlashModes = camera.getParameters().getSupportedFlashModes();
if (supportedFlashModes != null && supportedFlashModes.contains(Camera.Parameters.FLASH_MODE_TORCH)) {
mParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(mParams);
}
}
}
ve
private void turnFlashOff(Camera camera) {
if (camera != null) {
final List<String> supportedFlashModes = camera.getParameters().getSupportedFlashModes();
if (supportedFlashModes != null && supportedFlashModes.contains(Camera.Parameters.FLASH_MODE_OFF)) {
mParams.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(mParams);
}
}
}
Maalesef Hatmi cihazlar vahşi çökmesine başladı.
RuntimeException: Bir şekilde
camera.getParameters()
vecamera.setParameters()
gibi mesajlarla bozulmaya başladı setParameters
Ben başlayan ve almadan önce önizleme durdurma çalıştı
başarısız oldu: getParametersRuntimeException (boş parametreleri) başarısız oldu Artık hata atmayan parametreler. Ancak, camera.startPreview()
'u aradığımda önizleme devam etmiyor.
Fotoğraf makinesini bıraktığımdan ve tekrar açılmasından korkarım, bu işlem birkaç saniye sürüyor ve kötü bir deneyim yaşayacaktır.
Marshmallow'da el fenerini açma/kapama konusunda güvenilir öneriler var mı?
zaten Kamera iznine sahip. 23'ü hedeflemiyorum, bu yüzden henüz çalışma zamanı izinlerini kontrol etmem gerekmiyor, değil mi? –
Evet ve hayır. 23'ü hedeflemiyorsanız, izin zaten verilmiş olmalıdır. Ancak, kullanıcı kurulumdan sonra bu izni devre dışı bırakabilir. Bu durumda, izin verilip verilmediğini (API 23 cihazında çalışıyorsa) kontrol etmeniz gerekir. Kullanıcı bunu reddettiği için yapmazsanız, Kamera API'ları boş veya boş verileri döndürebilir. Bu konuşma, Marshmallow için izin değişiklikleri hakkında daha fazla ayrıntı sağlayacaktır: https://youtu.be/WGz-alwVh8A?list=PLnVy79PaFHMUqqvwbjyKJZv1N8rzHOCBi –
Haklısınız, bu gerçekten böyledir. Ancak uygulama izin verilen izinlerle bile çöküyor, bu yüzden Camera API ile ilgili bir şey değişti ve Lollipop veya Kitkat'taki gibi farklı davranıyor. –