首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在活动转到后台时保持闪烁

如何在活动转到后台时保持闪烁
EN

Stack Overflow用户
提问于 2013-07-18 12:22:48
回答 2查看 1.4K关注 0票数 0

我正在开发一个非常简单的手电筒应用程序,虽然我已经成功地实现了我想要的东西,但我想以我想要的方式来执行它。目前,我的手电筒仍然亮着,而我的活动是活动的,只要我按下主页按钮,最小化活动手电筒就会关闭。我希望手电筒一直亮着,只有在我单击活动中的关闭按钮时才关闭。

我也想要一些类似的东西,如果手电筒是激活的,用户点击主页按钮以最小化活动,关闭按钮以显示在通知栏中。

请给我引路。

EN

回答 2

Stack Overflow用户

发布于 2013-07-18 13:14:18

请尝试使用下面的代码。

公共类CustomFlashLight {

代码语言:javascript
复制
private static CustomFlashLight instance;

private static Camera mCamera;


public static CustomFlashLight getInstance() {
    if (null == instance) {
        instance = new CustomFlashLight();
    }
    return instance;
}

public static boolean checkFlashAvailaibility(Context context) {
    boolean flag = false;
    try {
        flag = context.getPackageManager().hasSystemFeature(
                PackageManager.FEATURE_CAMERA_FLASH);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return flag;
}

public static boolean turnOnLight() {
    boolean flag = false;
    try {
        mCamera = Camera.open();
        if (mCamera != null) {
            Parameters params = mCamera.getParameters();
            if (Build.MODEL.equals("GT-P1000")) {
                params.setFlashMode(Parameters.FLASH_MODE_ON);
            } else {

                params.setFlashMode(Parameters.FLASH_MODE_TORCH);
            }
            mCamera.setParameters(params);
            mCamera.startPreview();
            mCamera.autoFocus(new AutoFocusCallback() {

                public void onAutoFocus(boolean success, Camera camera) {
                }
            });

            flag = true;
        } else {
            flag = false;
        }
    } catch (Exception e) {
        e.printStackTrace();

    }
    return flag;
}

public static boolean turnOffLight() {
    boolean flag = false;
    try {
        if (mCamera != null) {
            mCamera.stopPreview();
            mCamera.release();
            mCamera = null;
            flag = true;
        }
    } catch (Exception e) {
        e.printStackTrace();

    }
    return flag;
}

}

票数 0
EN

Stack Overflow用户

发布于 2013-07-18 13:56:39

找到解决方案了。

代码语言:javascript
复制
@Override
public void onBackPressed() {
super.onBackPressed();

params = camera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
camera.stopPreview();
isFlashOn = false;

if (camera!= null) {
    camera.release();
    camera= null;
}
Log.d("Camera","Back Pressed");
}

并删除了onStop()和onPause()方法中的所有代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17714503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档