2013-01-22 50 views
0

我正在写一个应用程序,以在我的摩托罗拉XYBoard上打开固定持续时间的手电筒。以下是我的一段代码,虽然此代码适用于Motorola Attrix和Samsung Galaxy Note 10.1,但它不适用于XYBoard。我确实检查了支持的闪光模式,而火炬就是其中之一。我已经阅读了关于堆栈溢出的多个讨论,其他人面临类似的问题,但没有任何我尝试过的。将是非常有益的,如果有人来帮助我打开摩托罗拉XYBoard上的手电筒

公共无效flashLightOn(){

try { 
     if (getPackageManager().hasSystemFeature(
       PackageManager.FEATURE_CAMERA_FLASH)) { 

      cam = Camera.open(); 
      Parameters p = cam.getParameters(); 
      List<String> abc = p.getSupportedFlashModes(); 

      for (String a : abc){ 
       Log.d("mode: ", a); 
    } 
      p.setFlashMode(Parameters.FLASH_MODE_OFF); 
      p.setFlashMode(Parameters.FLASH_MODE_TORCH); 

      cam.setParameters(p); 
      cam.startPreview(); 
      /* cam.autoFocus(new AutoFocusCallback() { 
       public void onAutoFocus(boolean success, Camera camera) { 
       } 
      });*/ 

     } else { 

     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
     Toast.makeText(getBaseContext(), "Exception flashLightOn()", 
       Toast.LENGTH_SHORT).show(); 
    } 
} 


public void flashLightOff() { 
    try { 
     if (getPackageManager().hasSystemFeature(
       PackageManager.FEATURE_CAMERA_FLASH)) { 
      cam.stopPreview(); 
      cam.release(); 
      cam = null; 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
     Toast.makeText(getBaseContext(), "Exception flashLightOff", 
       Toast.LENGTH_SHORT).show(); 
    } 
} 

回答

0

你为什么不安装从App Store的应用程序手电筒一个,你的应用程序将只调用应用程序使用意图。

这样少编码!

+0

这是一个好主意,但不幸的是我需要开发自己的东西。 – sim