2012-05-24 40 views
8

我正在開發一款應用程序,需要打開Galaxy Nexus設備的手電筒。我在這裏開啓Galaxy Nexus手電筒

LED flashlight on Galaxy Nexus controllable by what API?簡稱後

public class TestCamera extends Activity implements SurfaceHolder.Callback{ 
Camera mCamera; 
public static SurfaceView preview; 
public static SurfaceHolder mHolder; 
public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    preview = (SurfaceView) findViewById(R.id.camSurface); 
    mHolder = preview.getHolder(); 
    mCamera = Camera.open(); 
    try { 
     mCamera.setPreviewDisplay(mHolder); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    Button onLEDbtn = (Button) findViewById(R.id.onLED_btn); 
    onLEDbtn.setOnClickListener(new OnClickListener(){ 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Toast.makeText(getApplicationContext(), "test", Toast.LENGTH_SHORT).show(); 
      Parameters params = mCamera.getParameters(); 
      params.setFlashMode(Parameters.FLASH_MODE_TORCH); 
      mCamera.setParameters(params);  
      mCamera.startPreview(); 
     } 

    }); 
} 



} 


    public void surfaceChanged(SurfaceHolder holder, int format, int width, 
      int height) { 
     // TODO Auto-generated method stub 

    } 


    public void surfaceCreated(SurfaceHolder holder) { 
     // TODO Auto-generated method stub 
     mHolder = holder; 
     try { 
      mCamera.setPreviewDisplay(mHolder); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 


    public void surfaceDestroyed(SurfaceHolder holder) { 
     // TODO Auto-generated method stub 
     mCamera.stopPreview(); 
      mHolder = null; 
    } 




} 

清單:

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" /> 

不過,我手電筒仍然無法開關。任何人都可以指出我的錯誤?由於

+0

你可以在這裏找到一切http://stackoverflow.com/questions/6068803/how-turn-on-only-camera-flash-light-programmatically-in-android – user219882

+0

可能重複的[無法使用手電筒在Galaxy Nexus](http://stackoverflow.com/questions/10731285/unable-to-use-the-flashlight-in-galaxy-nexus) –

+0

<使用權限android:name =「android.permission.CAMERA」/ > 以上是我的清單文件 此外,我在main.xml中添加了camSurface視圖 這會成爲一個問題嗎? 我可以得到敬酒信息,但不能打開手電筒... 請幫助。謝謝!! – user1311794

回答

0

嘗試添加:

android:name="android.permission.FLASHLIGHT" 
android:name="android.hardware.camera.flash 

而且看這個帖子: How to turn on camera flash light programmatically in Android?

+0

我有以下清單 <使用權限android:name =「android.permission.CAMERA」/> <使用權限android:name =「android.permission.FLASHLIGHT」/> 但是它不起作用。 – user1311794

+0

我發現這個職位: http://stackoverflow.com/questions/9505945/led-flashlight-does-not-work-on-samsung-galaxy-nexus – Skies

+0

和這一個: http:// stackoverflow。 com/questions/8876843/led-flashlight-on-galaxy-nexus -controllable-by-what-api/9379765#9379765 – Skies

0

您需要在清單文件中添加此標記。

<uses-feature android:name="android.hardware.camera.flash"/> 
7

你必須設回撥 mHolder.addCallback(本);