2015-10-22 22 views
22

Wystąpił błąd w mojej aplikacji działającej w Nexusie 5 (Android6.0).Android 6.0 RuntimeException: nie można połączyć się z usługą kamery

Błąd był

java.lang.RuntimeException: Nie udało się połączyć z usługą kamery

ja dodaje uprawnienie do AndroidManifest.xml.

Ale aplikacja działa poprawnie z innym telefonem (Android5.1) i genymotion AVD (Android 4.0).

Kod kluczem jest poniżej

@Override 
public void onResume() { 
    super.onResume(); 
    try { 
     mCamera = Camera.open(); 
    }catch (Exception e){ 
     Log.e(TAG,"open camera failed",e); 
    } 

} 
+2

sprawdzić ten http://stackoverflow.com/questions/33030933/android-6-0-open- failed-eacces-permission-denied? rq = 1 –

+0

Proszę dodać cały Stacktrace. Domyślam się, że masz również "SecurityException", który jest wskaźnikiem, że nie zażądałeś pozwolenia kamery w czasie wykonywania. – reVerse

Odpowiedz

25

Zapis w swojej gradle.build targetSdkVersion 22. Jest to rozwiązanie tymczasowe, ale praca.

+1

Wpadłem na ten sam problem, a to rozwiązało mój problem, dzięki! – BVB

+0

To również było rozwiązanie dla mnie. Bardzo dziwne! Co może być przyczyną? –

+0

Bardzo dziwne i to rozwiązuje. –

8

Dzieje się tak, ponieważ w systemie Android 6.0 model uprawnień jest inny. Musisz zaimplementować nowy model uprawnień, który prosi o zezwolenie w czasie wykonywania. Nawet jeśli o to nie poprosisz, możesz włączyć to ręcznie w ustawieniach aplikacji telefonu, ale nie działa to po opublikowaniu aplikacji w Sklepie Play. Here jest artykuł na temat Jak zdobyć uprawnienia czasie wykonywania

Ponadto można sprawdzić Nicka odpowiedź here dla uzyskania wielu pozwoleń

4

z Android 6.0 można obsługiwać pogodę aplikacja uprawnień będzie dać lub nie konkretnego pozwolenia dla podanie. W twoim przypadku, jeśli nie włączyłeś uprawnienia do kamery dla aplikacji, mogą pojawić się problemy.

Musisz więc zezwolić na pozwolenie od settings->apps->your_app->enable camera.

+0

Uratowałeś mój dzień!Wygląda jednak na to, że musimy prosić o uprawnienia wprost jako @Amalan Dhananjayan. W przeciwnym razie użytkownik końcowy nie powinien znać pewnych trudnych rzeczy, takich jak ustawienia-> aplikacje-> twoja_app-> włączanie kamery – Houssem

+1

@Houssem Tak, musisz sobie poradzić to programowo. https://inthecheesefactory.com/blog/things-you-need-to-know-about-android-m-permission-developer-edition/en dobrym samouczkiem do zrobienia tego. – 0xalihn

Powiązane problemy