gpt4 book ai didi

java - 强制关闭 Android 自定义相机应用

转载 作者:行者123 更新时间:2023-11-29 03:30:23 24 4
gpt4 key购买 nike

我正在开发一个 android 自定义相机应用程序而不使用 Intent (以避免获得 android 的内置相机功能)。我在我的应用程序中启用了自动对焦功能。我正在按下按键音量按钮拍照。我正在使用下面的代码来设置参数。

    Camera.Parameters p = camera.getParameters();
camera.autoFocus(autoFocusCallback);
p.setFocusMode(Parameters.FOCUS_MODE_AUTO);
camera.setParameters(p1);
camera.takePicture(shutterCallback, rawCallback, jpgCallback);


void setHandler(Handler autoFocusHandler, int autoFocusMessage)
{
this.autoFocusHandler = autoFocusHandler;
this.autoFocusMessage = autoFocusMessage;
}

private AutoFocusCallback autoFocusCallback = new AutoFocusCallback()
{
private Object success;
@Override
public void onAutoFocus(boolean autoFocusSuccess, Camera camera)
{
if (autoFocusHandler != null)
{
Message message = autoFocusHandler.obtainMessage(autoFocusMessage, success);
autoFocusHandler.sendMessageDelayed(message, AUTOFOCUS_INTERVAL_MS);
autoFocusHandler = null;
}
else
{

}
}
};

但问题是,此代码仅适用于 LG 手机。并且我在运行它之后强制关闭所有其他手机。

错误日志是这样的

http://textuploader.com/?p=6&id=kOc9G

没有得到我要去哪里错了。请帮忙!谢谢!

最佳答案

不同的手机有不同的相机参数。在实际设置之前检查模式是否可用。

例如,在您的情况下有 public List<String> getSupportedFocusModes ()的功能 Camera.Parameters类。

Afaik,acer 或 zte 等廉价手机对其相机的编程支持非常弱。

UPD:代码示例

    Camera.Parameters p = camera.getParameters();
List<String> modes = p.getSupportedFocusModes();
if(modes.contains(Camera.Parameters.FOCUS_MODE_AUTO))
{
p.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
camera.setParameters(p);
camera.autoFocus(autoFocusCallback);

}
else
{
// this is default focus mode if autofocus unsupported.
// also, we should not call camera.autoFocus(autoFocusCallback) here
p.setFocusMode(Camera.Parameters.FOCUS_MODE_FIXED);
camera.setParameters(p);
}

关于java - 强制关闭 Android 自定义相机应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18592822/

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