2012-05-24 30 views
8

Tôi đang phát triển một ứng dụng cần mở đèn pin của thiết bị Galaxy Nexus của mình. Tôi đã đề cập đến bài ở đâyĐèn pin mở của 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; 
    } 




} 

Manifest:

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

Tuy nhiên, tôi vẫn không thể bật đèn pin. Bất cứ ai có thể chỉ ra lỗi của tôi? Cảm ơn

+0

bạn có thể tìm thấy mọi thứ ở đây http://stackoverflow.com/questions/6068803/how-turn-on-only-camera-flash-light-programmatically-in-android – user219882

+0

bản sao có thể có của [Không thể sử dụng đèn pin trong Galaxy Nexus] (http://stackoverflow.com/questions/10731285/unable-to-use-the-flashlight-in-galaxy-nexus) –

+0

Phía trên là tệp kê khai của tôi Hơn nữa, tôi đã thêm chế độ xem camSurface bên trong main.xml Nó sẽ là một vấn đề? Tôi có thể nhận được tin nhắn chúc mừng nhưng không thể bật đèn pin ... Vui lòng trợ giúp. Cảm ơn!! – user1311794

Trả lời

0

Cố gắng thêm:

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

Và nhìn bài đăng này: How to turn on camera flash light programmatically in Android?

+0

Tôi có tệp kê khai sau Tuy nhiên nó không hoạt động. – user1311794

+0

Tôi đã tìm thấy bài đăng này: http://stackoverflow.com/questions/9505945/led-flashlight-does-not-work-on-samsung-galaxy-nexus – Skies

+0

và cái này: http: // stackoverflow. com/questions/8876843/led-flashlight-on-galaxy-nexus-controllable-by-what-api/9379765 # 9379765 – Skies

0

Bạn cần phải thêm thẻ này trong file manifest.

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

bạn phải đặt lại cuộc gọi mHolder.addCallback (this);

Các vấn đề liên quan