【问题标题】:Android flash light app安卓手电筒应用
【发布时间】:2012-11-01 22:17:07
【问题描述】:

我想为具有 2 个按钮的 Android 设备创建一个应用程序,一个按钮用于“ON”,另一个用于“OFF”。我在网上搜索了一个例子,我看到了很多例子,但它们的组织非常糟糕(对我来说)。到目前为止,我创建的是带有按钮的布局,主要活动的代码是:

 package com.simple.flashlight;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Camera;
import android.hardware.Camera.Parameters;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class Main extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_menue);

        Button turnOnButtOn = (Button) findViewById (R.id.button1);
        Button turnOnButtOff = (Button) findViewById (R.id.button2);


        turnOnButtOn.setOnClickListener(new Button.OnClickListener(){
            public void onClick(View cameraButton){

            }
        });
    }
}

现在我想做这样的事情(伪代码):

turnOnButtOn.setOnClickListener(new Button.OnClickListener(){
    public void onClick(View cameraButton){
        turnOnTheFlahLight
    }
});

turnOnButtOn.setOnClickListener(new Button.OnClickListener(){
    public void onClick(View cameraButton){
        turnOffTheFlahLight
    }
});

如果有任何完整的参考资料(我是 android 新手),那就太好了。 谢谢

【问题讨论】:

  • 关于手电筒的控制,你应该看看stackoverflow.com/questions/6068803/…
  • 这似乎是一个很好的答案,但对于像我这样的初学者来说,拥有所有代码会很好,包括此代码中按钮的导入和集成

标签: android android-camera


【解决方案1】:

首先,您需要在清单中添加使用手电筒的权限:

 <permission android:name="android.permission.FLASHLIGHT"
             android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
             android:protectionLevel="normal" />

要打开手电筒,请使用以下方法:

Camera mCam = Camera.open();     
Parameters p = mCam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCam.setParameters(p);
mCam.startPreview();

要关闭它:

mCam.stopPreview();
  mCam.release();

【讨论】:

    【解决方案2】:

    如果您想要打开设备的 LED 以使其像手电筒一样工作,这就是您的伪代码所指示的,您的应用必须假装它是一个相机应用,因为闪光灯位于相机 API 中。因此,您必须做一些事情。
    1)在您的清单中,您需要声明您的应用程序使用camera permission and feature
    2) 在您的应用程序代码中,您需要使用 Camera::open() 实际创建一个 Camera 对象的实例
    3) 您的应用程序代码将需要创建一个 CameraParams 对象并将闪光灯模式设置为 on 或 torch(我已经看了几个月了,但两者中的一个会这样做)。查看CameraParemeters 文档了解更多详细信息。在此对象中设置正确的参数后,您需要在步骤 2 中创建的 Camera 对象上调用 setParameters
    4) 然后你需要调用 startPreview()

    要关闭闪光灯,您只需在相机对象上调用 stopPreview()

    【讨论】:

      【解决方案3】:

      如果你有错误的设备,闪光灯应用程序对初学者来说并不是那么好,因为一些制造商不使用安卓提供的正常方式来打开灯。 我建议你做一些其他的事情来学习 android。

      【讨论】:

      • 新设备支持吗? 2012 年及以后?
      猜你喜欢
      • 2011-09-12
      • 1970-01-01
      • 2016-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 2014-06-17
      相关资源
      最近更新 更多