2015-07-12 2 views
-2

Я написал приложение для Android Flash Light, но это похоже на странное поведение.Приложение для Android FlashLight

Код, который вызывается нажатием кнопки «Turn On» кнопки является

public void flashLightOn(View view){ 
     try { 
      if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) 
      cam = Camera.open(0); 
      Camera.Parameters p = cam.getParameters(); 
      p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); 
      cam.setParameters(p); 
      cam.startPreview(); 
     }catch (Exception e){ 
      e.printStackTrace(); 
     } 
    } 

Теперь, самое странное, что это приложение отлично работает на некоторых телефонах и не работает на других.

Я пробовал это на моем OnePlus One и Motorola Droid Mini, и на обоих из них он отлично работает, но когда я запускал его на Motorola Droid RAZR и Moto E, он не работал.

Я не могу понять проблему здесь. Может ли кто-нибудь помочь?

+1

«она не работает» не хороший способ сообщить о проблемах. Вы должны отправить сообщение об ошибке для нас, чтобы помочь. –

+0

Вставить блокировку Log.e («Без вспышки», «Ошибка:» + e); –

+0

Вы получаете NullPointerException. Я прав? В следующий раз отправьте лог-код. – krystian71115

ответ

2

Заменить код:

public void flashLightOn(View view){ 
     try { 
      if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) 
{ // you don't added this 
      cam = Camera.open(0); 
      Camera.Parameters p = cam.getParameters(); 
      p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); 
      cam.setParameters(p); 
      cam.startPreview(); 
} // and this 
     }catch (Exception e){ 
      e.printStackTrace(); 
     } 
    } 
+0

В чем разница между кодом OPs и этим кодом? – Batty

+0

См. Edit: Я добавил комментарии. – krystian71115

Смежные вопросы