- 不同传感器的 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设备上的各种传感器,包括加速度传感器、方向传感器、陀螺仪传感器、磁场传感器、...
创建一个SensorEventListener实现类,重写onSensorChanged()方法,该方法会在传感器值改变时被调用。然后使用SensorManager的registerListener()方法注册监听器: ```java class LightSensorListener implements ...
在Android平台上,开发一个“摇一摇”功能的应用程序,主要涉及到的是设备的传感器技术,尤其是加速度计和震动传感器。下面将详细讲解这个过程涉及的技术点。 首先,我们需要了解Android系统的传感器框架。Android...
在Android开发中,指南针应用是一种常见的功能,它利用设备内置的传感器来指示地球的磁场北。本项目提供了两种不同的实现方式,分别是基于方向传感器(Orientation Sensor)和基于加速度传感器与磁场传感器...
在Android平台上,加速度传感器(Accelerometer)是一种重要的硬件组件,它能够感知设备在空间中的移动,通过测量重力和动态加速度来提供X、Y、Z三个轴上的加速度值。这些数据对于开发各种应用,如游戏、健康追踪器...
6. **Eclipse集成开发环境**:虽然现在大多数开发者转向了Android Studio,但Eclipse曾是Android开发的主要IDE。此项目能在Eclipse中运行,说明它兼容较旧的开发工具,这可能涉及到ADT插件和早期版本的Android SDK。...
在Android应用开发中,加速度传感器通常用于创建各种交互式体验,比如游戏、健康与健身应用,甚至是智能家居控制。 首先,我们来看看如何在Android中访问加速度传感器。开发者可以使用`SensorManager`类来注册...
在Android开发中,方向传感器是一种重要的硬件传感器,用于检测设备相对于地球磁场的旋转角度。它提供了设备在3D空间中的姿态信息,可以帮助开发者构建各种基于移动设备方向的应用,如导航、游戏或者虚拟现实体验。 ...
这个“dianziwenduji.zip”文件显然包含了一个这样的应用,它利用了Android设备内置的温度传感器来实时显示环境或设备的温度。下面我们将深入探讨与这个主题相关的Android编程、传感器技术和温度计应用开发的知识点...
在Android平台上,传感器技术是移动应用开发中的一个重要组成部分,它为开发者提供了丰富的设备交互可能性。本文将通过一个具体的实例——“android传感器使用实例”,详细解析如何利用Android的传感器API,尤其是...
在提供的Android例子源码中,可能会包含一个简单的示例应用,演示如何初始化SensorManager,注册加速度传感器监听器,处理传感器事件,并在界面上显示实时的加速度数据。这将帮助开发者直观地理解如何在实践中使用加...
### Android硬件传感器知识点详解 #### 一、引言 随着移动技术的发展,智能手机已经成为人们日常生活中不可或缺的一部分。...希望本文能为正在学习或从事Android开发的朋友们提供一定的参考价值。
在项目"AccelerometerTest"中,可以构建一个简单的应用界面,实时显示传感器读数。此外,为了确保传感器功能的正确性,可以使用模拟器或实际设备进行测试。在模拟器中,可以通过开发者选项模拟传感器数据;在真实...
通过分析和理解这些源代码,我们可以深入学习如何在Android平台上利用传感器数据进行各种应用开发,例如运动检测、游戏控制或者健康管理等。 1. **加速度传感器接口**:在Android的Sensor框架中,`Sensor`类代表了...
在Android开发中,传感器是获取设备物理环境变化的重要工具,其中重力传感器(3轴加速度传感器)是一个非常常见的类型。这个传感器可以检测到设备在三个正交轴(X、Y、Z轴)上的线性加速度,包括由于地球引力引起的...
这个小例子是针对开发者设计的,目的是帮助他们理解和如何在Android应用中集成重力传感器功能,通过在界面上实时显示XYZ轴的加速度值。 首先,我们需要了解Android的Sensor框架。Android系统提供了一个...
步骤四:显示传感器信息 将获取到的传感器信息(如名称、类型、范围等)展示在UI上,可以使用ListView或者RecyclerView这样的列表控件,配合自定义的Adapter来显示。 在编码过程中,要注意兼容性问题。由于项目默认...
在Android开发中,Sensor传感器是实现许多有趣功能的关键部分,比如运动检测、环境感知等。本文将深入探讨如何在Android Studio环境下使用Sensor API来实现一个基础的“摇一摇”功能,让应用能够识别用户的摇动操作...
在Android系统中,获取手机的各种传感器数据是一项关键的开发任务,这使得应用程序能够与物理环境交互,提供丰富的用户体验。本文将深入探讨如何利用Android SDK中的SensorManager类来获取包括陀螺仪、方向传感器和...