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<Sensor> 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相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android操作SQLite数据库技巧总结》、《Android操作json格式数据技巧总结》、《Android资源操作技巧汇总》及《Android控件用法总结》

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

时间: 2024-10-29 01:42:22

Android开发获取传感器数据的方法示例【加速度传感器,磁场传感器,光线传感器,方向传感器】的相关文章

Android编程获取GPS数据的方法详解_Android

本文实例讲述了Android编程获取GPS数据的方法.分享给大家供大家参考,具体如下: GPS是Android系统中重要的组成部分,通过它可以衍生出众多的与位置相关的应用. Android的GPS有一个专门的管理类,称为LocationManager,所有的GPS定位服务都由其对象产生并进行控制. 首先需要明确的是,LocationManager类的对象获取并不是直接创建的,而是由系统提供的,具体来说,通过如下方法,为一个LocationManager对象建立一个对象引用: 复制代码 代码如下:

Android编程获取GPS数据的方法详解

本文实例讲述了Android编程获取GPS数据的方法.分享给大家供大家参考,具体如下: GPS是Android系统中重要的组成部分,通过它可以衍生出众多的与位置相关的应用. Android的GPS有一个专门的管理类,称为LocationManager,所有的GPS定位服务都由其对象产生并进行控制. 首先需要明确的是,LocationManager类的对象获取并不是直接创建的,而是由系统提供的,具体来说,通过如下方法,为一个LocationManager对象建立一个对象引用: 复制代码 代码如下:

Android编程获取图片数据的方法详解

本文实例讲述了Android编程获取图片数据的方法.分享给大家供大家参考,具体如下: 网络的访问在我们日常生活中太重要了,如果没有网络我们的生活将会是什么样子呢?Android手机和浏览器也是一样的,也可以通过网络通讯获取数据,如调用webservice,EJB等.下面就通过一个小例子从网络获取一幅图片并显示在手机上,开发中将会使用到一个新的组件ImageView. 1. 写一个用来处理字节流的工具类 package org.lxh.util; import java.io.ByteArrayO

Android编程实现获取所有传感器数据的方法

本文实例讲述了Android编程实现获取所有传感器数据的方法.分享给大家供大家参考,具体如下: main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" androi

Android开发获取重力加速度和磁场强度的方法

本文实例讲述了Android开发获取重力加速度和磁场强度的方法.分享给大家供大家参考,具体如下: Android获取重力加速度和磁场强度主要依靠: Sensor.getRotationMatrix (float[] R, float[] I, float[] gravity, float[] geomagnetic) 输入数据: gravity为重力传感器测得的重力加速度float[3]: geomagnetic为罗盘传感器测得的地磁数据float[3]: 输出数据: R为通过这个方法计算得到的

Android开发获取短信的内容并截取短信_Android

1.首先我们要写一个广播接收器,当我们的手机收到短信时,系统会自动发送一个广播,我们只需要接收到这条广播就可以了 2.在广播里面,我们重写的onReceive()方法,通过里面的Intent写到的Bundle就可以拿到短信的内容, 3.清单文件里面我们必须要添加权限,否则无法接收到. 4.为了防止我们的广播接收不到,我们自己写的广播接收器的权限必须要大,以防万一,我设置了1000. 下面上代码,里面的注释也比较详细.. <?xml version="." encoding=&qu

Android开发之删除项目缓存的方法_Android

本文实例讲述了Android开发之删除项目缓存的方法.分享给大家供大家参考,具体如下: 如何删除项目的缓存: getCacheDir()能够得到当前项目的缓存地址 在项目中经常会使用到WebView 控件,当加载html 页面时,会在/data/data/应用package 目录下生成database与cache 两个文件夹.请求的url 记录是保存在WebViewCache.db,而url 的内容是保存在WebViewCache 文件夹下 打开关闭使用缓存,一共有五个种类 //优先使用缓存:

android中获取root权限的方法以及原理(转)

一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的"越狱"有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有掌控手机系统的权限,比如删除一些system/app下面的无用软件,更换开关机铃声和动画,拦截状态栏弹出的广告等. 2. Root的原理介绍 谷歌的android系统管理员用户就叫做root,该帐户拥有整个系统至高无上的权利,它可以访问和修改你手机几乎所有的文件,只有root才具备最高级别

Android实现读写JSON数据的方法_Android

本文实例讲述了Android实现读写JSON数据的方法.分享给大家供大家参考.具体如下: 1. 解析JSON: package de.vogella.android.twitter.json; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import org.apache.http.HttpEntit