`
leidiqiu
  • 浏览: 135092 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 开发 — 显示传感器的值

阅读更多
  • 不同传感器的 listener 只能单独写出,尝试用一个 listener 监听所有传感器的变化失败。
  • 某个 listener 的监听速度设为 SENSOR_DELAY_FASTEST ,其他的也跟着变快。
  • 温度传感器变化很慢,有时候没有读数。

 

package com.ldq.sensor.detail;

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.util.Log;
import android.widget.TextView;

public class ExSensorDetail extends Activity {

	private TextView text1;
	private TextView text2;
	private TextView text3;
	private TextView text4;
	private TextView text5;
	private TextView text6;
	private TextView text7;
	private TextView text8;
	private TextView text9;
	private TextView text10;

	private SensorEventListener acc_listener = new SensorEventListener() {
		@Override
		public void onAccuracyChanged(Sensor sensor, int accuracy) {
			// TODO Auto-generated method stub
		}

		@Override
		public void onSensorChanged(SensorEvent event) {
			// TODO Auto-generated method stub
			Log.i("------", "" + "TYPE_ACCELEROMETER");
			text1.setText("ACCELEROMETER_X: " + event.values[0]);
			text2.setText("ACCELEROMETER_Y: " + event.values[1]);
			text3.setText("ACCELEROMETER_Z: " + event.values[2]);
		}
	};

	private SensorEventListener mag_listener = new SensorEventListener() {
		@Override
		public void onAccuracyChanged(Sensor sensor, int accuracy) {
			// TODO Auto-generated method stub
		}

		@Override
		public void onSensorChanged(SensorEvent event) {
			// TODO Auto-generated method stub
			text4.setText("MAGNETIC_FIELD_X: " + event.values[0]);
			text5.setText("MAGNETIC_FIELD_Y: " + event.values[1]);
			text6.setText("MAGNETIC_FIELD_Z: " + event.values[2]);
		}
	};

	private SensorEventListener ori_listener = new SensorEventListener() {
		@Override
		public void onAccuracyChanged(Sensor sensor, int accuracy) {
			// TODO Auto-generated method stub
		}

		@Override
		public void onSensorChanged(SensorEvent event) {
			// TODO Auto-generated method stub
			text7.setText("ORIENTATION_X: " + event.values[0]);
			text8.setText("ORIENTATION_Y: " + event.values[1]);
			text9.setText("ORIENTATION_Z: " + event.values[2]);
		}
	};

	private SensorEventListener tem_listener = new SensorEventListener() {
		@Override
		public void onAccuracyChanged(Sensor sensor, int accuracy) {
			// TODO Auto-generated method stub
		}

		@Override
		public void onSensorChanged(SensorEvent event) {
			// TODO Auto-generated method stub
			text10.setText("TEMPERATURE: " + event.values[0]);
		}
	};

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		text1 = (TextView) findViewById(R.id.TextView01);
		text2 = (TextView) findViewById(R.id.TextView02);
		text3 = (TextView) findViewById(R.id.TextView03);
		text4 = (TextView) findViewById(R.id.TextView04);
		text5 = (TextView) findViewById(R.id.TextView05);
		text6 = (TextView) findViewById(R.id.TextView06);
		text7 = (TextView) findViewById(R.id.TextView07);
		text8 = (TextView) findViewById(R.id.TextView08);
		text9 = (TextView) findViewById(R.id.TextView09);
		text10 = (TextView) findViewById(R.id.TextView01);

		SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
		sm.registerListener(acc_listener, sm
				.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
				SensorManager.SENSOR_DELAY_NORMAL);
		sm.registerListener(mag_listener, sm
				.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
				SensorManager.SENSOR_DELAY_NORMAL);
		sm.registerListener(ori_listener, sm
				.getDefaultSensor(Sensor.TYPE_ORIENTATION),
				SensorManager.SENSOR_DELAY_NORMAL);
		sm.registerListener(tem_listener, sm
				.getDefaultSensor(Sensor.TYPE_TEMPERATURE),
				SensorManager.SENSOR_DELAY_NORMAL);

	}
}

 

 main.xml 文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout android:id="@+id/LinearLayout01"
	android:layout_width="fill_parent" android:layout_height="fill_parent"
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical">
	<TextView android:text="@+id/TextView01" android:id="@+id/TextView01"
		android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
	<TextView android:text="@+id/TextView02" android:id="@+id/TextView02"
		android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
	<TextView android:text="@+id/TextView03" android:id="@+id/TextView03"
		android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
	<TextView android:text="@+id/TextView04" android:id="@+id/TextView04"
		android:layout_width="wrap_content" android:layout_height="wrap_content"
		android:layout_marginTop="10px"></TextView>
	<TextView android:text="@+id/TextView05" android:id="@+id/TextView05"
		android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
	<TextView android:text="@+id/TextView06" android:id="@+id/TextView06"
		android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
	<TextView android:text="@+id/TextView07" android:id="@+id/TextView07"
		android:layout_width="wrap_content" android:layout_height="wrap_content"
		android:layout_marginTop="10px"></TextView>
	<TextView android:text="@+id/TextView08" android:id="@+id/TextView08"
		android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
	<TextView android:text="@+id/TextView09" android:id="@+id/TextView09"
		android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
	<TextView android:text="@+id/TextView10" android:id="@+id/TextView10"
		android:layout_width="wrap_content" android:layout_height="wrap_content"
		android:layout_marginTop="10px"></TextView>
</LinearLayout>

 

  • 大小: 8.7 KB
分享到:
评论

相关推荐

    android各传感器开发,显示返回数据

    在Android平台上进行传感器开发是一项重要的任务,因为它允许开发者创建丰富的用户体验和创新的应用程序。本教程主要聚焦于Android设备上的各种传感器,包括加速度传感器、方向传感器、陀螺仪传感器、磁场传感器、...

    安卓光线传感器值的获取

    创建一个SensorEventListener实现类,重写onSensorChanged()方法,该方法会在传感器值改变时被调用。然后使用SensorManager的registerListener()方法注册监听器: ```java class LightSensorListener implements ...

    android震动传感器之摇一摇

    在Android平台上,开发一个“摇一摇”功能的应用程序,主要涉及到的是设备的传感器技术,尤其是加速度计和震动传感器。下面将详细讲解这个过程涉及的技术点。 首先,我们需要了解Android系统的传感器框架。Android...

    Android开发-指南针【多种传感器实现】

    在Android开发中,指南针应用是一种常见的功能,它利用设备内置的传感器来指示地球的磁场北。本项目提供了两种不同的实现方式,分别是基于方向传感器(Orientation Sensor)和基于加速度传感器与磁场传感器...

    android加速度传感器

    在Android平台上,加速度传感器(Accelerometer)是一种重要的硬件组件,它能够感知设备在空间中的移动,通过测量重力和动态加速度来提供X、Y、Z三个轴上的加速度值。这些数据对于开发各种应用,如游戏、健康追踪器...

    检测和显示手机所具有的传感器的android项目

    6. **Eclipse集成开发环境**:虽然现在大多数开发者转向了Android Studio,但Eclipse曾是Android开发的主要IDE。此项目能在Eclipse中运行,说明它兼容较旧的开发工具,这可能涉及到ADT插件和早期版本的Android SDK。...

    Android 加速度传感器曲线图

    在Android应用开发中,加速度传感器通常用于创建各种交互式体验,比如游戏、健康与健身应用,甚至是智能家居控制。 首先,我们来看看如何在Android中访问加速度传感器。开发者可以使用`SensorManager`类来注册...

    Android利用方向传感器获得手机的相对角度实例说明

    在Android开发中,方向传感器是一种重要的硬件传感器,用于检测设备相对于地球磁场的旋转角度。它提供了设备在3D空间中的姿态信息,可以帮助开发者构建各种基于移动设备方向的应用,如导航、游戏或者虚拟现实体验。 ...

    dianziwenduji.zip_android_android 温度计_传感器 android_手机传感器_温度计

    这个“dianziwenduji.zip”文件显然包含了一个这样的应用,它利用了Android设备内置的温度传感器来实时显示环境或设备的温度。下面我们将深入探讨与这个主题相关的Android编程、传感器技术和温度计应用开发的知识点...

    android传感器使用实例

    在Android平台上,传感器技术是移动应用开发中的一个重要组成部分,它为开发者提供了丰富的设备交互可能性。本文将通过一个具体的实例——“android传感器使用实例”,详细解析如何利用Android的传感器API,尤其是...

    Android源码手机加速度传感器 测试

    在提供的Android例子源码中,可能会包含一个简单的示例应用,演示如何初始化SensorManager,注册加速度传感器监听器,处理传感器事件,并在界面上显示实时的加速度数据。这将帮助开发者直观地理解如何在实践中使用加...

    android硬件传感器.txt

    ### Android硬件传感器知识点详解 #### 一、引言 随着移动技术的发展,智能手机已经成为人们日常生活中不可或缺的一部分。...希望本文能为正在学习或从事Android开发的朋友们提供一定的参考价值。

    Android传感器测试

    在项目"AccelerometerTest"中,可以构建一个简单的应用界面,实时显示传感器读数。此外,为了确保传感器功能的正确性,可以使用模拟器或实际设备进行测试。在模拟器中,可以通过开发者选项模拟传感器数据;在真实...

    Android加速度传感器源代码

    通过分析和理解这些源代码,我们可以深入学习如何在Android平台上利用传感器数据进行各种应用开发,例如运动检测、游戏控制或者健康管理等。 1. **加速度传感器接口**:在Android的Sensor框架中,`Sensor`类代表了...

    Android的重力传感器(3轴加速度传感器)简单实例

    在Android开发中,传感器是获取设备物理环境变化的重要工具,其中重力传感器(3轴加速度传感器)是一个非常常见的类型。这个传感器可以检测到设备在三个正交轴(X、Y、Z轴)上的线性加速度,包括由于地球引力引起的...

    android手机重力传感器例程

    这个小例子是针对开发者设计的,目的是帮助他们理解和如何在Android应用中集成重力传感器功能,通过在界面上实时显示XYZ轴的加速度值。 首先,我们需要了解Android的Sensor框架。Android系统提供了一个...

    Android例子源码获取设备上的所有传感器信息并显示

    步骤四:显示传感器信息 将获取到的传感器信息(如名称、类型、范围等)展示在UI上,可以使用ListView或者RecyclerView这样的列表控件,配合自定义的Adapter来显示。 在编码过程中,要注意兼容性问题。由于项目默认...

    Android开发-Sensor传感器-AndroidStudio(一)摇一摇

    在Android开发中,Sensor传感器是实现许多有趣功能的关键部分,比如运动检测、环境感知等。本文将深入探讨如何在Android Studio环境下使用Sensor API来实现一个基础的“摇一摇”功能,让应用能够识别用户的摇动操作...

    获取Android手机的各类传感器数据

    在Android系统中,获取手机的各种传感器数据是一项关键的开发任务,这使得应用程序能够与物理环境交互,提供丰富的用户体验。本文将深入探讨如何利用Android SDK中的SensorManager类来获取包括陀螺仪、方向传感器和...

Global site tag (gtag.js) - Google Analytics