Android使用传感器

书山有路勤为径,学海无涯苦作舟。


本讲内容:传感器


一、传感器简介

手机中内置的传感器是一种微型的物理设备,它能够探测、感受到外界的信号,并按一定规律转换成我们所需要的信息。Android手机支持多种类型的传感器,如光照传感器、加速度传感器、地磁传感器、压力传感器、温度传感器等。


1)光照传感器

譬如系统就有个自动调整屏幕亮度的功能。它会检测手机周围环境的光照强度,然后对手机屏幕的亮度进行相应地调整,以保证不管在强光还是弱光下,手机屏幕都能看得清。


步骤:(Android中每个传感器的用法比较类似)

1、获取SensorManager的实例

SensorManager mSensorManager=(SensorManager) getSystemService(Context.SENSOR_SERVICE);
2、 SensorManager是系统所有传感器的管理器械,调用getDefaultSensor()方法可以得到任意的传感器类型。

Sensor sensor=mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
3、对传感器输出的信号进行监听,借助SensorEventListener接口来实现,有 onAccuracyChanged()和onSensorChanged()方法。当传感器的精度发生变化时就会调用 onAccuracyChanged()方法,当传感器监测到的数值发生变化时就会调用onSensorChanged(SensorEvent event)方法,这个参数里包含一个values数组,所有传感器输出的信息都是存放在这里的。

4、调用SensorManager的registerListener()方法来注册SensorEventListener才能使其生效。registerListener()方法接收三个参数,第一个参数是SensorEventListener的实例,第二个参数是Sensor的实例,第三个参数是用于表示传感器输出信息的更新速率,共有SENSOR_DELAY_UI、SENSOR_DELAY_NORMAL、SENSOR_DELAY_GAME和SENSOR_DELAY_FASTEST这四种可选,它们的更新速率是依次递增的。

mSensorManager.registerListener(listener, sensor,SensorManager.SENSOR_DELAY_FASTEST);

5、当程序退出或传感器使用完毕时,要调用unregisterListener()方法将使用的资源释放掉。

mSensorManager.unregisterListener(listener);

示例一:


下面是res/layout/activity_main.xml 布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/id_light_level"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textSize="25sp" />

</RelativeLayout>

下面是MainActivity.java主界面文件:

public class MainActivity extends Activity {
	private SensorManager mSens
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值