【发布时间】:2015-04-25 09:42:44
【问题描述】:
我目前制作了一个简单的手电筒应用程序,但它不适用于某些带有摄像头 LED 的设备,但在其他设备上却可以正常工作。谁能告诉我我做错了什么?
这是我的主要活动:
public class MainActivity extends Activity {
private Camera camera;
private Camera.Parameters parameters;
private ImageButton flashLightButton;
boolean isFlashLightOn = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
flashLightButton = (ImageButton)findViewById(R.id.flashlight_button);
flashLightButton.setOnClickListener(new FlashOnOffListener());
if (isFlashSupported()) {
camera = Camera.open();
parameters = camera.getParameters();
} else {
showNoFlashAlert();
}
}
private class FlashOnOffListener implements View.OnClickListener{
@Override
public void onClick(View v) {
if(isFlashLightOn){
flashLightButton.setImageResource(R.drawable.flashlight_off);
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.stopPreview();
isFlashLightOn = false;
}else{
flashLightButton.setImageResource(R.drawable.flashlight_on);
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.startPreview();
isFlashLightOn = true;
}
}
}
private void showNoFlashAlert() {
new AlertDialog.Builder(this)
.setMessage("Your device hardware does not support flashlight!")
.setIcon(android.R.drawable.ic_dialog_alert).setTitle("Error")
.setPositiveButton("Ok", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
finish();
}
}).show();
}
private boolean isFlashSupported() {
PackageManager pm = getPackageManager();
return pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
}
@Override
protected void onDestroy() {
if(camera != null){
camera.stopPreview();
camera.release();
camera = null;
}
super.onDestroy();
}
}
【问题讨论】:
-
你能分享一下不起作用的代码吗?
-
另外,也许可以举一些它可以工作的设备和一些不能工作的设备的例子?
-
我已经分享了代码看看这个
-
它不适用于 karbonn、samusung、lava、micromax、gionee 和其他具有不同 android 版本的设备。
标签: android camera led flashlight