android开发中磁场传感器,Android开发获取传感器数据的方法示例【加速度传感器,磁场传感器,光线传感器,方向传感器】...

本文实例讲述了android开发获取传感器数据的方法。分享给大家供大家参考,具体如下:

package mobile.android.sensor;

import java.util.list;

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.textview;

public class main extends activity implements sensoreventlistener {

private textview tvaccelerometer;

private textview tvmagentic;

private textview tvlight;

private textview tvorientation;

private textview tvsensors;

@override

public void oncreate(bundle savedinstancestate) {

super.oncreate(savedinstancestate);

setcontentview(r.layout.main);

// 获得sensormanager对象

sensormanager sensormanager = (sensormanager) getsystemservice(sensor_service);

// 注册加速度传感器

sensormanager.registerlistener(this,

sensormanager.getdefaultsensor(sensor.type_accelerometer),

sensormanager.sensor_delay_fastest);

// 注册磁场传感器

sensormanager.registerlistener(this,

sensormanager.getdefaultsensor(sensor.type_magnetic_field),

sensormanager.sensor_delay_fastest);

// 注册光线传感器

sensormanager.registerlistener(this,

sensormanager.getdefaultsensor(sensor.type_light),

sensormanager.sensor_delay_fastest);

// 注册方向传感器

sensormanager.registerlistener(this,

sensormanager.getdefaultsensor(sensor.type_orientation),

sensormanager.sensor_delay_fastest);

tvaccelerometer = (textview) findviewbyid(r.id.tvaccelerometer);

tvmagentic = (textview) findviewbyid(r.id.tvmagentic);

tvlight = (textview) findviewbyid(r.id.tvlight);

tvorientation = (textview) findviewbyid(r.id.tvorientation);

tvsensors = (textview) findviewbyid(r.id.tvsensors);

// 获得当前手机支持的所有传感器

list sensors = sensormanager.getsensorlist(sensor.type_all);

for (sensor sensor : sensors) {

// 输出当前传感器的名称

tvsensors.append(sensor.getname() + "\n");

}

}

@override

public void onsensorchanged(sensorevent event) {

// 通过gettype方法获得当前传回数据的传感器类型

switch (event.sensor.gettype()) {

case sensor.type_accelerometer: // 处理加速度传感器传回的数据

string accelerometer = "加速度\n" + "x:" + event.values[0] + "\n"

+ "y:" + event.values[1] + "\n" + "z:" + event.values[2]

+ "\n";

tvaccelerometer.settext(accelerometer);

break;

case sensor.type_light: // 处理光线传感器传回的数据

tvlight.settext("亮度:" + event.values[0]);

break;

case sensor.type_magnetic_field: // 处理磁场传感器传回的数据

string magentic = "磁场\n" + "x:" + event.values[0] + "\n" + "y:"

+ event.values[1] + "\n" + "z:" + event.values[2] + "\n";

tvmagentic.settext(magentic);

break;

case sensor.type_orientation: // 处理方向传感器传回的数据

string orientation = "方向\n" + "x:" + event.values[0] + "\n" + "y:"

+ event.values[1] + "\n" + "z:" + event.values[2] + "\n";

tvorientation.settext(orientation);

break;

}

}

@override

public void onaccuracychanged(sensor sensor, int accuracy) {

}

}

ps:这里获得的只是传感器采集数据,还需要对数据分析,变成有用的信息。

希望本文所述对大家android程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值