- 浏览: 565569 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
0759cxz:
good job!
Android 同时使用多个library时的问题 -
zhouxiaoli521:
lgj452555712 写道cursor 没有关闭,最好加上 ...
Android sqlite中判断某个表是否存在方法 -
lgj452555712:
cursor 没有关闭,最好加上finally 后关上fina ...
Android sqlite中判断某个表是否存在方法 -
zhouxiaoli521:
zhouxiaoli521 写道weinifk 写道publi ...
StringBuffer的setLength -
zhouxiaoli521:
weinifk 写道public static void ma ...
StringBuffer的setLength
在Android 2.3中新增了3个感应器,对于Android平台的开发我们通过感应器可以发挥想象设计出一些很实用的软件。下面就一起看下目前API Level为9时一共11个感应器分辨是什么吧.
1. ACCELEROMETER 加速,描述加速度的。
2.GRAVITY 重力,这个在大家都知道。
3.GYROSCOPE
陀螺仪,对于物体跌落检测更强大些,开发游戏少了它会有点遗憾的,API Level 9新增的类型。
4. LIGHT 光线感应器,很多Android手机的屏幕亮度是根据这个感应器的数组自动调节的。
5. LINEAR_ACCELERATION 线性加速器,API Level
9新增的。
6. MAGNETIC_FIELD 磁极感应器。
7. ORIENTATION 方向感应器。
8. PRESSURE 压力感应器。
9. PROXIMITY
距离感应器,对于通话后关闭屏幕背光很有用。
10.
ROTATION_VECTOR 旋转向量,Android 2.3新增的,如果我们过去处理图像会发现这个还是很有用的,不过这里还是对游戏开发起到辅助。
11. TEMPERATURE 温度感应器,可以获取手机的内部温度,不过和周边的有些差距,毕竟手机内部一般温度比较高。
对于以上感应器Android123提醒开发者,除了特别描述API Level为9或2.3之外的,SDK在1.5即Level 3时就已经支持了,不过最终使用还要看手机硬件的支持,很多山寨机或小品牌的设备可能会在这些上面偷工减料,同时Android开发网提醒大家,感应器的数据刷新比较快一般,考虑到电池功耗一般长时间使用CPU的占用率可能会提升,影响系统性能。
列举手机上已经有的感应器,可以通过SensorManager类的List<Sensor> getSensorList(int type) 获取,返回一个感应器类型的数组。这里在列举时type参数应该写TYPE_ALL.
======================
一下代码有两个作用 一个是现实手机上的所有传感器
一个是在title上显示重力传感器的变化
package com.HelloSensor; import java.util.List; import android.app.Activity; import android.content.Context; 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 HelloSensor extends Activity { Sensor sensor ; private float x, y, z; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //准备显示信息的UI组建 final TextView tx1 = (TextView) findViewById(R.id.TextView01); //从系统服务中获得传感器管理器 SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE); //从传感器管理器中获得全部的传感器列表 List<Sensor> allSensors = sm.getSensorList(Sensor.TYPE_ALL); //显示有多少个传感器 tx1.setText("经检测该手机有" + allSensors.size() + "个传感器,他们分别是:\n"); //显示每个传感器的具体信息 for (Sensor s : allSensors) { String tempString = "\n" + " 设备名称:" + s.getName() + "\n" + " 设备版本:" + s.getVersion() + "\n" + " 供应商:" + s.getVendor() + "\n"; switch (s.getType()) { case Sensor.TYPE_ACCELEROMETER: tx1.setText(tx1.getText().toString() + s.getType() + " 加速度传感器accelerometer" + tempString); break; case Sensor.TYPE_GRAVITY: tx1.setText(tx1.getText().toString() + s.getType() + " 重力传感器gravity API 9" + tempString); break; case Sensor.TYPE_GYROSCOPE: tx1.setText(tx1.getText().toString() + s.getType() + " 陀螺仪传感器gyroscope" + tempString); break; case Sensor.TYPE_LIGHT: tx1.setText(tx1.getText().toString() + s.getType() + " 环境光线传感器light" + tempString); break; case Sensor.TYPE_LINEAR_ACCELERATION: tx1.setText(tx1.getText().toString() + s.getType() + " 线性加速器LINEAR_ACCELERATION API 9" + tempString); break; case Sensor.TYPE_MAGNETIC_FIELD: tx1.setText(tx1.getText().toString() + s.getType() + " 电磁场传感器magnetic field" + tempString); break; case Sensor.TYPE_ORIENTATION: tx1.setText(tx1.getText().toString() + s.getType() + " 方向传感器orientation" + tempString); break; case Sensor.TYPE_PRESSURE: tx1.setText(tx1.getText().toString() + s.getType() + " 压力传感器pressure" + tempString); break; case Sensor.TYPE_PROXIMITY: tx1.setText(tx1.getText().toString() + s.getType() + " 距离传感器proximity" + tempString); break; case Sensor.TYPE_ROTATION_VECTOR: tx1.setText(tx1.getText().toString() + s.getType() + " 旋转向量ROTATION" + tempString); break; case Sensor.TYPE_TEMPERATURE: tx1.setText(tx1.getText().toString() + s.getType() + " 温度传感器temperature" + tempString); break; default: tx1.setText(tx1.getText().toString() + s.getType() + " 未知传感器" + tempString); break; } } //在title上显示重力传感器的变化 sensor = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); SensorEventListener lsn = new SensorEventListener() { public void onSensorChanged(SensorEvent e) { x = e.values[SensorManager.DATA_X]; y = e.values[SensorManager.DATA_Y]; z = e.values[SensorManager.DATA_Z]; setTitle("x=" + (int) x + "," + "y=" + (int) y + "," + "z="+ (int) z); } public void onAccuracyChanged(Sensor s, int accuracy) { } }; // 注册listener,第三个参数是检测的精确度 sm.registerListener(lsn, sensor, SensorManager.SENSOR_DELAY_GAME); } }
发表评论
-
Android NDK开发环境搭建_r8
2014-04-23 16:32 1087本文主内容: 1、 Android NDK 安装 2、 ... -
Android java.lang.VerifyError 异常解决办法
2014-04-01 13:58 4626通常这个异常的问题出现在jar包上 我的情况是 sdk ... -
Android —— 关于ADT 17的BuildConfig.DEBUG
2014-03-21 11:02 1168在日常开发中,我们使用android.util.Lo ... -
Android 让多个Fragment 切换时不重新实例化
2013-12-05 18:48 1464在项目中需要进行Fragment的切换,一直都是用repla ... -
android学习—— context 和 getApplicationContext()
2013-09-22 11:08 1939在android中常常会遇到与context有关的内容 浅 ... -
Android requestFeature() must be called before adding content
2013-07-08 17:18 2383E/AndroidRuntime( 408): androi ... -
Android onActivityResult和横屏
2013-06-20 16:48 1842做一个项目 页面强制横屏 两个activity需要交互 现 ... -
Android 无法加载fragment的问题
2013-06-17 14:42 2468在项目中继承了fragment 重写了构造函数 make ... -
android源码解读一(Context)
2013-04-27 19:16 1808Context类 Context是一个抽象类 publi ... -
Android 4.1 动态加载APK中的资源
2013-04-24 17:29 4199*** is not owned by the curr ... -
Android ADT中增大AVD内存后无法启动:emulator failed to allocate memory 8
2013-04-15 15:45 1813过程中,增大对应AVD的 ... -
Android下面的MD5加密
2013-04-08 12:17 1017网上关于android下MD5加密的资料很多,但是测试了下 ... -
Android 调用系统应用程序信息(Application Info)界面
2013-03-15 18:30 1278“Android系统设置->应用程序->管理应用 ... -
Android Dialog背景透明和黑暗度
2013-03-14 18:20 4111设置透明度,主要设置的是dialog自身的透明度 ... -
全局监听SCREEN_ON和SCREEN_OFF的替代方法--监听屏幕解锁事件
2013-03-08 12:17 3052在做一个程序的时候,需要时刻保持某一服务是启动的, ... -
Android 退出应用程序
2013-01-21 10:53 931android.os.Process.killProcess ... -
Android控件WebView(浏览器)常用功能(图片、缩放)例子介绍
2012-11-06 11:03 2557Android系统默认提供WebView控件(view)来在应 ... -
Android ProgressBar使用.9图在部分android手机上显示异常!
2012-11-05 10:18 2183写道 我使用的是progressbar.xml配置文 ... -
Android 同时使用多个library时的问题
2012-10-29 12:40 1633剧情是这样,我的app要使用两个library,如:Li ... -
android圆形进度条ProgressBar颜色设置
2012-07-29 15:14 1384总结的挺全面 http://aichixihongshi.i ...
相关推荐
这个"android 多种感应器demo"资源对于初学者来说是一份宝贵的参考资料,它能让你亲手实践,快速掌握Android感应器的使用方法。通过学习和理解这些示例,你可以更深入地了解Android平台上的硬件交互,提升开发能力。
总之,`Android手机平台重力感应SensorDemo`是一个很好的学习资源,它教你如何利用Android SDK来捕捉和解析重力感应器数据,这对于开发涉及运动检测、游戏控制或其他依赖设备位置变化的应用至关重要。通过深入研究`...
在Android平台上,获取用户移动方向的关键在于利用Sensor感应器,特别是磁场感应器和加速度感应器。Android系统提供了丰富的传感器API,使得开发者能够方便地获取设备的各种运动数据。本篇文章将深入探讨如何利用...
这个"Android手机平台重力感应Demo"是一个示例项目,用于演示如何在Android应用中利用重力感应器的数据。以下是关于这个Demo及其相关知识点的详细说明: 1. **Android传感器系统**:Android系统提供了丰富的传感器...
在Android开发中,距离感应器(Proximity Sensor)是一个重要的硬件组件,用于检测设备与周围物体,特别是人体的距离。这个功能被广泛应用于智能手机,尤其是在通话或显示敏感信息时,能够智能地控制屏幕的状态,以...
在Android系统中,加速度感应器(Accelerometer Sensor)是一种重要的硬件传感器,它能够检测设备在三维空间中的加速度变化。加速度感应器通常用于移动设备,如智能手机和平板电脑,来感知设备的动态运动,例如倾斜、...
android Sensor各种感应器源码 加速度感应器,重力,方向。磁场感应器
android手机感应器检测:手机感应器有数十种之多,将它一一罗例。
至于文件列表中的"Surface",它可能指的是Android的Surface类,用于在硬件渲染管道上创建一个表面,通常与视图的绘制和多媒体播放有关。不过,由于提供的信息有限,这里没有直接关联到重力感应监听的实现,但如果...
在Android平台上,重力感应功能是一项重要的硬件特性,它允许应用程序感知设备的移动和方向变化。这个名为"Android手机平台重力感应Demo.zip"的压缩包包含了一个示例项目,旨在帮助开发者理解和实现如何在Android...
在Android平台上,感应器(Sensor)是设备与周围环境交互的关键组件。加速度传感器和方向传感器是其中两类常见的传感器,广泛应用于移动设备中,提供设备的动态运动信息和朝向变化。本文将深入探讨这两类传感器的...
在Android平台上,开发者可以通过Android传感器API来访问设备的各种传感器数据,包括重力感应器。这个应用的核心技术点主要包括以下几个方面: 1. **Android传感器API**:Android系统提供了SensorManager类,它是与...
在Android平台上,重力感应是通过传感器服务(Sensor Service)来实现的,它允许开发者获取设备的物理运动数据,如重力、加速度等。这个"android_重力感应demo"是一个示例项目,旨在帮助初学者理解如何从设备获取并...
在Android平台上,重力感应是一种常见且重要的功能,它允许应用程序根据设备的移动或倾斜来感知和响应物理世界中的变化。这个"Android重力感应实例"可能是为了展示如何利用Android SDK中的传感器API来开发一个控制...
在Android平台上,加速度感应器(Accelerometer)是一种传感器设备,用于检测设备在三维空间中的加速度。这个技术被广泛应用于各种应用场景,如健康监测、游戏控制、运动追踪等。"android加速度感应平衡球"就是一个...
“基于Android近距离感应器的俯卧撑计数软件”是一个巧妙利用现有硬件资源的实例,展示了Android平台的灵活性和创新性。通过学习该项目,开发者不仅可以掌握Android传感器的使用,还能激发对运动监测技术的兴趣,为...
在Android平台上,重力感应是通过传感器服务(Sensor Service)来实现的,它允许开发者获取设备的各种物理状态信息,如重力、加速度、陀螺仪等。在本"Android重力感应Demo"中,我们将深入探讨如何利用Android SDK中的...
本示例将深入探讨如何在Android中实现重力感应器的功能,并提供源码供参考。"TestSensor"这个文件很可能是包含实际代码的测试项目。 ### 1. 重力感应器基础 Android系统的Sensor框架提供了对各种传感器事件的访问...
下面我们将深入探讨与"Android感应飞行游戏"相关的多个知识点。 1. **传感器技术**:Android设备内置多种传感器,如加速度计、陀螺仪等。加速度计用于检测设备在三个轴向上的线性加速度,而陀螺仪则检测设备的旋转...
在Android平台上,重力感应功能是通过利用内置的传感器来实现的,这些传感器通常被称为“重力传感器”或“加速度计”。这个“android重力感应实例代码”提供了一个具体的示例,帮助开发者理解如何在Android应用中...