カメラの懐中電灯をオン/オフするボタンを備えた小さな Android ウィジェットを作成しようとしています。何千もあるのは知っていますが、私は Android を学びたいと思っています (小さなステップが最善の方法のようです)。
これで、公式ドキュメント、Web 上の無料のチュートリアルを読み、stackoverflow で検索しました。これまでのところ、エラーは発生していません。LogCat は、すべてが期待どおりに機能していると言っています。しかし、Galaxy Nexus でアプリをテストしているとき、スイッチはオン/オフしますが、カム LED はオン/オフしません。
これが私のコードです(LEDが実際にオン/オフされる部分のみ):
if (isLightOn) {
Log.d("receiver", "flashlight is on, disabling it");
if (camera != null) {
param.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(param);
camera.release();
camera = null;
isLightOn = false;
}
} else {
Log.d("receiver", "flashlight is off, enabling it");
camera = Camera.open();
if(camera == null) {
Toast.makeText(context, R.string.no_camera, Toast.LENGTH_SHORT).show();
} else {
// Set the torch flash mode
param.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
try {
camera.setParameters(param);
isLightOn = true;
} catch (Exception e) {
Toast.makeText(context, R.string.no_flash, Toast.LENGTH_SHORT).show();
}
}
}
これが意図したとおりに機能しない理由はありますか?