1
다음은 Android에서 손전등을 사용하도록 설정하는 코드입니다. Toast 메시지에서 다음 매개 변수를 반환했습니다. auto, on, off, torch. 매개 변수를 FLASH_MODE_TORCH로 설정하면 토치가 나를 사용할 수 없습니다. 내 매니페스트 권한은 다음과 같습니다카메라를 플래시 토치로 사용하는 방법?
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
<permission android:name="android.permission.FLASHLIGHT"
android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
android:protectionLevel="normal"/>
<uses-feature android:name="android.hardware.camera"></uses-feature>
내 코드 :
public class CameraFlashActivity extends Activity {
/** Called when the activity is first created. */
public Camera mCamera;
Parameters cameraParameters;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
boolean cameraPresnt = this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
if(cameraPresnt == true)
{
Toast.makeText(getApplicationContext(),"Flash is there",10).show();
if(mCamera==null)
{
try {
mCamera = Camera.open();
mCamera.startPreview();
Toast.makeText(getApplicationContext(),"Camera is present",10).show();
} catch (Exception e) {
Log.i("CameraFlashActivity", "Camera.open() failed: " + e.getMessage());
}
if(mCamera==null)
{
Toast.makeText(getApplicationContext(),"Camera object is null",10).show();
}
else
{
cameraParameters = mCamera.getParameters();
if(cameraParameters==null)
{
Toast.makeText(getApplicationContext(),"No camera parameters",10).show();
}
else
{
List<String> flashmodes = cameraParameters.getSupportedFlashModes();
String supportedFlashModes = cameraParameters.getFlashMode();
Toast.makeText(getApplicationContext(),flashmodes.toString(),10).show();
Toast.makeText(getApplicationContext(),supportedFlashModes,10).show();
cameraParameters.setFlashMode(Parameters.FLASH_MODE_ON);
mCamera.setParameters(cameraParameters);
String supportFlashModes = cameraParameters.getFlashMode();
Toast.makeText(getApplicationContext(),supportFlashModes,10).show();
Toast.makeText(getApplicationContext(),"Camera parameters are set on flash light",10).show();
}
}
}
else
{
}
}
else
{
Toast.makeText(getApplicationContext(),"Flash is not there",10).show();
}
}
public void onDestroy() {
super.onDestroy();
if (mCamera != null) {
cameraParameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(cameraParameters);
mCamera.stopPreview();
mCamera.release();
}
Log.i("cameraFlashLight", "onDestroy");
}
}