gpt4 book ai didi

java - 未检测到闪光灯

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:08:52 26 4
gpt4 key购买 nike

我正在尝试编写一个在按下按钮时打开闪光灯的应用程序。问题是应用程序没有检测到我手机上的闪光灯。我在互联网上搜索了很多。当然其他人也遇到过这个问题,我也应用了这些解决方案,但它们似乎不起作用。我不知道是什么导致了这个问题。在此处发布代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_starting_point);

if(! getApplicationContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) // checking if flash light is available inn android phone
{
Toast.makeText(StartingPoint.this, "Sorry this app can't work without flash light", Toast.LENGTH_LONG).show();
finish();
}

cam = Camera.open();

param = cam.getParameters();


}

@Override
public void onClick (View v)
{
if(!flashOn)
{
i=0;

flashOn=true;

param.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(param);
cam.startPreview();
}
else{
i=0;

flashOn=false;

param.setFlashMode(Parameters.FLASH_MODE_OFF);
cam.setParameters(param);
cam.stopPreview();
}

我也在 Android Manifest 中添加了这些权限。

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

问候

最佳答案

我有一个检查手电筒功能的应用程序,它工作正常。这是我用来检查用户是否有灯的代码:

if (!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
new AlertDialog.Builder(this)
.setTitle("Sorry")
.setMessage("It appears that your device is incompatible with this app. Sorry for the inconvenience.")
.setNeutralButton("Close", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface arg0, int arg1) {
finish();
}
}).show();
return;
}

现在为了真正让灯工作,我制作了一个切换按钮并编写了以下代码:

private boolean isLightOn = false;
private Camera camera;
private ToggleButton button;
public Vibrator v;

if (camera == null) {
camera = Camera.open();
}

final Parameters p = camera.getParameters();

button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {

if (isLightOn) {

Toast.makeText(context, "Light off!", Toast.LENGTH_SHORT).show();
v.vibrate(40);
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();
isLightOn = false;

} else {

Toast.makeText(context, "Light on!", Toast.LENGTH_SHORT).show();
v.vibrate(40);
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();
isLightOn = true;

}

}
});

最后,这是我使用的唯一权限:

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

注意:以上所有代码都在我的 Activity 的 onCreate 方法中。

希望这有助于解决您的问题!

关于java - 未检测到闪光灯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17514555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com