Фонарик (LED BACK) вкл / выкл, камера ноль HTC - PullRequest
1 голос
/ 24 ноября 2011

Я тренируюсь и пытаюсь сменить фонарик (фонарик) на задней панели моего HTC. Но я не получаю доступ к камере, я вставил в манифест следующее:

<uses-permission android:name="android.permission.FLASHLIGHT"
   android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
   android:protectionLevel="normal"/>
<uses-permission android:name="android.permission.CAMERA"/>
 <uses-feature android:name="android.hardware.camera.flash" />

Это может быть очень просто и глупо, но Google и StackOverflow не дали мне решения, так что кто-нибудь может сказать мне, что я делаю неправильно? Это мой файл активности:

import android.app.Activity; 
import android.content.Intent; 
import android.hardware.Camera; 
import android.hardware.Camera.Parameters;
import android.os.Bundle; 
import android.widget.*; 
import android.view.View; 
import android.util.Log; 
import java.util.List;

public class FlashlightActivity extends Activity {      
  private Camera mCamera;

  /** Called when the activity is first created, just a titlescreen. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ImageButton titlescreen = (ImageButton)findViewById(R.id.titlescreen);
    titlescreen.setOnClickListener(new View.OnClickListener()  {
      public void onClick(View v){
        TurnFlashOff();
        if (mCamera==null){ 
          finish();}
        else {
          Intent go = new Intent(TurnMeOnFlashlightActivity.this,TMO_App.class);
          startActivity(go);
        }
      }
    });
    Log.d("TurnMeOn", "startpage");
  }

  private void TurnFlashOff(){
    if(mCamera != null){
      mCamera = Camera.open();
      Parameters params = mCamera.getParameters();
      List<String> flashModes = params.getSupportedFlashModes();

      if (flashModes.contains(Parameters.FLASH_MODE_TORCH)) {
        params.setFlashMode(Parameters.FLASH_MODE_OFF);
        mCamera.setParameters(params); 
        mCamera.release();
        mCamera = null;
      } else {
        Toast.makeText(TurnMeOnFlashlightActivity.this, R.string.FlashNoSupport, Toast.LENGTH_LONG).show();
        mCamera.release();
        mCamera = null;
      } 
    } else {
      Toast.makeText(TurnMeOnFlashlightActivity.this, R.string.FlashNoSupport, Toast.LENGTH_LONG).show();
    }
  }
}
...