安卓传感器api

本文介绍了安卓设备上传感器API的使用,包括方向、温度、光、压力和磁场等传感器。通过SensorManager获取传感器服务,注册SensorEventListener监听器,并在onSensorChanged()中处理传感器事件。示例代码展示了如何获取并显示不同传感器的数据,如方向、磁场强度、温度和光照等级。传感器API为开发者提供了创建创新应用的可能性,如指南针、水平仪和游戏方向判定等。
摘要由CSDN通过智能技术生成

安卓提供了对传感器的支持,如果手机设备的硬件支持了这些传感器,那么利用传感器可以开发出一些非常有趣的应用,这种模式在3D游戏中已经非常常见。

大体上,一般的智能机能支持几种常见的传感器:

》Orientation ---方向传感器

》Tempreture ---温度传感器

》Light ---光传感器

》Pressure ---压力传感器

》Magnetic Field ---磁场传感器

》Accelerometer ---加速度传感器


传感器的几个重要的API:
SensorManager

Sensor

SensorEvent (绑定SensorEventListener)

所以开发传感器应用的步骤如下:
1 调用Context的getSystemService(Context.SENSOR_SERVICE)方法获取SensorManager对象,SensorManager对象代表系统的传感器管理服务。

2 调用SensorManager的getDefaultSensor(int type)方法获取指定类型的传感器;

3 一般在Activity的OnResume()方法中调用SensorManager的registerListener()为指定传感器注册监听器

4 在Activity的OnStop()方法中注销对传感器的注册。


注册指定传感器的方法如下:
registerListener(SensorEventListener listener,Sensor sensor,int rate)

三个参数意义如下:
listener:为传感器注册的SensorEventListener;

sensor:指定的传感器;

rate:这个参数表示获取传感器的频率,它支持如下几个频率值:
SensorManager.SENSOR_DELAY_FASTEST: 最快的模式,带式消耗的电能比较大,占用性能大;
SensorManager.SENSOR_DELAY_GAME: 适合游戏的模式;
SensorManager.SENSOR_DELAY_NORMAL: 正常的模式,对实时性要求不是特别高的应用更适合这个频率;

SensorManager.SENSOR_DELAY_UI: 适合普通用户界面的频率。


下面以一个简单地示例说明几个传感器的具体用法:

由于在真机上运行要安装传感器模拟器,所以此例是运行在真机上的:

package org.crazyit.sensor;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.EditText;


public class SensorSimulatorTest extends Activity
implements SensorEventListener
{

private SensorM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值