手机刷机accelerationcts sensor testt

小站会根据您的关注,为您发现更多,
看到喜欢的小站就马上关注吧!
下一站,你会遇见谁的梦想?
【2012MWC聚焦】四核强机HTC ONE X
简单介绍:
HTC 本次最高端的新机 One X,将采用 Tegra 3 1.5GHz 四核心处理器,搭配 Android 4.0 ICS 操作系统与 1GB RAM、32GB 内建容量,屏幕为 4.7 英寸
Super LCD2,有康宁 Gorilla 屏幕玻璃防护。HTC One X 相机继续采用 800 万像素背照式感光元件与 F2.0、28mm 广角大光圈,闪灯具有 5 级智能亮度感测功能。One X 更加入了「双快门」设计,可如同 Galaxy Nexus 一般在录制 HD 影片中也按下相机快门拍照存取静态照片。HTC One X 拍照功能还包括每秒五张连拍、锁定画面快速启动相机、录像稳定功能、脸部追踪、慢动作模式等,也具有前置视讯相机,为 130 万像素。可以确定的是此款新机的国际版将使用Tegra 3 1.5GHz 四核心处理器,但是其美版将使用高通双核处理器。&&&&&
【新闻】CM9 for RAZR 更新日志
分享一下游戏链接2月25日更新:【swf整理】情人节大礼,刀锋游戏最强音!!!
原文及大致翻译哈。Hey guys,&&&&男的们
quick update on what has happened the last days:&&&&过去的一天是快速更新的一天
- got latest AOKP 4.0.3 running on GSM Razr&&&&4.03版本的可以在刀锋上使用GSM了
- can make and receive calls&&&&&&可以接听或拨打任何电话了
- camera works with a small preview delay&&&&&&相机工作有小的预览延迟&
- there is no indication for network connection and signal strength (shows only "noservice")&&&&&&&没有网络连接或信号指示(提示无服务)&
- there are NO GSM data settings available -& no data&&&&&&没有GSM数据设置
- worked by flashing the rom by the dev team without having to make any changes - android.phone, sim card error are to expect&&&&&开发团队对于手机SIM卡错误没有改进
- work on the rom continues, damn hard work...just like puzzling&&&&继续努力的改进这个ROM
Working now: phone calls, SMS, camera (photo), adb, USB mass storage, Bluetooth (must come from rom mentionned in installation instructions, thanks mcfisch)&&&&&&现在正常工作的有电话、短信、ADB、USB海量储存、蓝牙(必须要来自介绍的rom感谢XX)
Not working: camera (video, panorama)&&&&不能正常工作的:相机(视频,全景)
Flash only if you are aware of the consequences and know how to restore your original system! &&&&如果想要尝鲜就必须知道怎么回复原来的ROM
This is not ready for daily use (especially not on GSM) and I am not responsible for any damages.&&&&&为准备好日常使用(特别是GSM),擅自使用对此造成的后果本人概不负责
Current version (23.02.2012): Alpha by Dhacker, Hashcode, Droidth3ory and AOKP (sources)&&&&当前版本
Download: http://t.co/ez4lvwhA &&&&下载地址
后面就是刷机方法不翻译了,水平有限大神勿笑。
ATM we need to get to know, how to activate the GSM network menu in the settings and how to enable signal indication!Help and ideas for solving problems and better compatibility are appreciated, send me a PM if you can contribute.
Installation from the scratch:- BACKUP your system via Bootstrap- wipe your phone via MOTOROLA Recovery (System + Data)- flash Android 2.3.6 rom (necessary to get BT working) via RSD or with the tool provided here if have the newest bootloader- enable usb-debugging and installation from unknown sources- root with your preferred method- install Bootstrap- wipe data, cache, dalvik-cache and format system- flash the rom- reboot, ICS should start now, you should get an android.phone crash, but an "unknown sim card" error
Modifications:For an improved ICS impression, you can enable the typical on screen buttons&( soft keys are deactivated now): Download
To deactivate on screen buttons again flash this: Download
Video of IC3RAZR on GSM Razr
Of course, all credit goes to Dhacker29, Hashcode, Droidth3oryand everyone else who works on ICS for the Razr
【资讯】2月2日最新水货港行报价
这是水货商人的拿货价,基本加价零售在200左右,给大家做个参考。
【资讯】Android 4.0操作系统21项新特性图解
Google与三星的联合发布会已经结束,第三个亲儿子手机Galaxy Nexus搭载这最新的冰淇淋三明治系统正式问世,Android已经开始走向最新的4.0时代,新版系统究竟有哪些新特性呢?我们先抛开三星的新手机不说,来详细看一下冰淇淋三明治的新特点。
实际上在发布会之前,相信不少用户都在期待传闻中的手机与平板机大融合,不过本次冰淇淋三明治的发布并没有透露任何关于平板机产品的信息,完全着重于手机端,包括新的功能和新的界面改进等等,在用户体验上追求极致,我们就来逐一分析新版Android的主要特点。
新特性列表:
1.虚拟按键,增大屏幕面积同时控制手机整体大小
正如之前泄漏的资料,新版Android系统取消了底部物理按键设计,采用虚拟按键,这样可以在机身大小不变的情况下增大屏幕显示面积,同时这样的操作方式可以与平板机保持一致。
2.桌面插件Widgets列表呈现在标签页中,与程序列表类似并且共存
程序列表现在支持切换至桌面插件列表,插件列表以缩略图展示实际显示效果,拖动至桌面即可使用。
3.文件夹更容易创建和管理,与iOS类似
新版文件夹功能非常简单,你只需要拖动一个图标到另一个图表上,就能集合成一个文件夹,然后可以重命名文件夹,并整理图标快捷方式,支持快速拨号、文件等内容放入文件夹,这有点类似于iOS。
4.可定制的桌面系统
桌面功能增加可定制项目,比如屏幕底部的快捷栏,默认三个按钮,你可以增加至五个,并且定义每个按钮的功能,可以是程序、联系人、快速拨号以及文件夹。
5.可视语音邮件
独立应用,可集成在通话记录中显示,包括语音信箱留言、可视留言等内容,与语音通话记录同时显示。
6.日历支持缩放操作
日期切换更加方便,可以放大查看详细日程,支持双指缩放操作。
7.Gmail离线搜索,两行预览,以及底部新快捷栏
收件箱字体得到更换,图标、布局均重新设计,底部快捷栏可以写邮件、搜索、访问标签,加入离线搜索支持,收件箱显示两行文字预览,左右滑动切换Gmail会话。
8.音量下键+电源键组合截图
9.改进虚拟键盘纠错
纠错和拼写检查得到改进,点击单词即可得到建议结果。
10.从锁屏界面直接访问应用程序
锁屏界面拖动解锁图标至应用快捷方式可以直接打开该应用,另外锁屏时也可以使用下拉通知栏。
11.优化复制粘贴
12.新版浏览器
内置浏览器改版,标签系统增强,可以快捷打开标签切换,最多同时打开16个标签页,支持Chrome书签同步。
15.相机应用
零快门延迟、时间间隔设置、录制同时变焦,单张拍照一秒内完成。
16.人脸识别,刷脸解锁
人脸识别功能得到应用,比如解锁,可以在设置之后自拍进行屏幕解锁
17.内置照片编辑器
内置了照片编辑器,功能比较强大,可以进行裁剪、美化、调色等修改
18.多任务列表
多任务列表展示最近运行程序缩略图,你可以关闭某个程序来释放内存。
19.新的图库布局和组织方式
全新的图库设计,可以自动按照主题、地理位置、人脸识别等方式组织照片的排列显示
20.联系人应用整合社交网络信息
新版联系人程序功能更加丰富,可以集成社交网络信息,一起雅克内置状态更新,可查看高清图像,可以快速发送邮件,
21.Android Beam
基于NFC的Android Beam功能可以让两部手机交换网站、联系人、导航、YouTube视频等,甚至官方电子市场的下载链接。
通过这些可以看到,新版Android 4.0并未带来更多令人激动的新功能,更多的还是在老老实实的优化更新已有的功能,让这些功能更加方便,同时在界面和操作体验上也在向简单、一致的设计目标前进。
或许这样的发布会对于Android新手或者普通手机用户来说不够吸引眼球,但是在Android忠实用户眼里,Google已经为他们解决了很多之前使用起来不够方便的功能设计,Android 4.0或许不够炫目,但是更具亲和力。
【Android4.0】CM9-defy-12-2测试更新内容及下载
下载地址:
12月2日更新内容:
1、修正方向感应器(保持launcher现时的状态)
2、备份工具更新(保留市场,基带等等)
1、固定在纵向模式启动... (强制关闭相关的键盘)
2、修正谷歌地图
3、修复GSM数据
4、修正谷歌地图,没有错误,但没有层画(可能是多重构图的意思)
5、修正3D(galery,OpenGL的等等)
6、修正相机(很难)
There is still a lot of things to fix, just use it for tests...
【资讯】MIUI V4 — 基于Android 4.0的华丽蜕变
& & & 由于目前所有的MIUI V4设计正在进行中,现在暂时发出部分设计稿。MIUI V4 是MIUI 从Android 4.0框架出发进行全新的设计。 & & & 保留了原生4.0的应用框架,但是依然继承了MIUI人性化的设计和炫酷的界面。
转载来源:
【资讯】Android 4.0 ICS rom汇总贴
最近Android 4.0 ICS已经放出源码,xda-developers和CM Team的大神们陆续给各机型做了rom,在miui找到了几个转帖,为了方便大家刷机,做了个汇总,并且将根据xda上面的情况及时更新,请大家多多加米哦,有米才有力气更新嘛~
12.01新内容:
hd2的4.0rom更新至Beta2.1版,增加了对硬件加速的支持。Defy的CM9rom,DHD的Beta1版rom:
【4.0rom】Ice Cream Sandwich for Desire HD
4.0 for DHD 的尝鲜rom,据说蓝牙、Wifi不工作,运行很卡,USB不工作&&尝个鲜吧。
再次感谢CM和xda的大神们!Thanks to CM team and xda-developers!
What works: 能工作的
-Calls 通话
-Data (have to set the apn manually) 数据(需要手动设置APN)
-Touchscreen 触摸屏
-Audio 音乐
-Key lights 触摸按键灯
-SDCard SD卡
-Hardware acceleration 2D 2D的硬件加速
-Microphone 麦克风
What dont work:不能工作的
-Video Codec 视频解码
-3D gaming 3D游戏
-Camera 相机
-3D HW acceleration 3D硬件加速
-accelerometer 加速
-bluetooth 蓝牙
详情和下载地址请点击:
【4.0rom】 CM9 Boot on the Defy - with Sound !
CM9 for Defy的rom,
There is still a lot of things to fix
仍然有很多东西需要修复
First Bootable Test ROMs : Download:
DONE:已经完成(修复)的
Startup, bootmenu and recovery 开机,启动菜单和recovery
Touchscreen and keypad (multitouch too)触摸屏和键盘(多点触控)
New Network (netfilter) kernel modules (quota2, and fake qtaguid to enhance) 新的网络模块
Fix egl configuration and colors 修复了egl配置和色彩
29-11 =) Hardware accelerated ui 硬件加速的用户界面
Phone data 电话数据
Play the videos made with defy camera on CM7 通过CM7上的相机播放视频?
Fix sound and phone audio 修复了声音和音乐
Tomorrow: Fix Webkit (Browser), Defy Parts, "reboot bootmenu" and "reboot recovery" (command line only)
TODO LIST (by priority):
Fix orientation sensor
Fix Google Video
Fix camera (will be hard)
In next build : Defy Parts (as app)
Google apps :
(Require a Data Wipe, will not work with /data from cm7)
更多请点击:
HD2 4.0rom Beta2.1版
xda11.30更新了到了Beta2.1版!新的更新中,硬件加速可以使用了!&&
Rom is VERY fast, even faster than most gingerbread roms here
rom非常快,甚至比大多数2.3rom还快。&&评价非常好啊!
详情请点击:&&
ICS ROM for HD2 NexusHD2-ICS Beta2
从NS上移植过来的hd2的4.0 rom。感谢CM和xda的大神们!Thanks to CM Team and xda-developers
Working:工作的&
Phone Calls 电话
Audio/Sound (Flawless)
音乐和声音(完美)
Data: 3G/HSDPA using PPP (PPP is stable than RMNET under ICS ROM currently.) 数据:3G/HSDPA 使用PPP
Bluetooth 蓝牙
GPS and AGPS
Touchscreen 触摸屏
Vibration 振动
Charging 充电
All sensors 所有的传感器
BMA150 3-axis Accelerometer
AK8973 3-axis Magnetic field sensor
AK8973 Orientation sensor
CM3602 Proximity sensor
CM3602 Light sensor&
下载和更多请点击:
& &ICS port for IB - BETA
What works:哪些是可用的
Both cellphones:两种制式?
Hardware Acceleration硬件加速
calls, sms, 3g - no more script needed.通话、短信、3g
Wifi 无线网络wifi
SDCards (internal and external)SD卡,内部和外部
Market 电子市场
Contacts sync 联系人同步
Calendar sync 日历同步
camera 照相机
panorama mode 全景模式
face unlock
data usage 数据储存
Partition schemma is now including datadata back to avoid issues with slow movinand devices
usb support usb支持
bluetooth 蓝牙
What does not work:
尚不工作的
Camera (video recording)摄像
Phone encryption 电话加密
下载和更多详情请点击:
下面发一个NS的CM9 rom
CyanogenMod 9 Alpha 11 for NS - by Koush
Fix missing dictionaries.修复了缺失的字典
Fix duplicate keyboards.修复了重复键盘
Add Google Wallet.增加了Google钱包
Fix signal strength.修复了信号强度
Fix mounting usb storage on computers.修复了USB储存
Fixed usb tether.
Fixed live wallpapers.
Fixed data usage stats.
Fixed data limits.
还只是Alpha阶段哦,请慎刷!
更多详情请点击:
转载来源:
站长在关注FTC_Sensor_Guide_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
FTC_Sensor_Guide
上传于||文档简介
&&F​T​C​ ​设​计​ ​比​赛​ ​帮​助​ ​最​全
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩19页未读,继续阅读
你可能喜欢android 传感器(OnSensorChanged)使用介绍
投稿:mdxy-dxy
字体:[ ] 类型:转载 时间:
当传感器的值发生变化时,例如磁阻传感器方向改变时会调用OnSensorChanged(). 当传感器的精度发生变化时会调用OnAccuracyChanged()方法
下面是API中定义的几个代表sensor的常量。
TYPE_ACCELEROMETER
A constant describing an accelerometer sensor type. 加速度传感器
A constant describing all sensor types. 所有类型 A constant describing all sensor types.
TYPE_GRAVITY
A constant describing a gravity sensor type.
TYPE_GYROSCOPE
A constant describing a gyroscope sensor type 回转仪传感器
TYPE_LIGHT
A constant describing an light sensor type.光线传感器
TYPE_LINEAR_ACCELERATION
A constant describing a linear acceleration sensor type.
TYPE_MAGNETIC_FIELD
A constant describing a magnetic field sensor type.磁场传感器
TYPE_ORIENTATION
This constant is deprecated. use SensorManager.getOrientation()instead. 磁场传感器
TYPE_PRESSURE
A constant describing a pressure sensor type 压力计传感器
TYPE_PROXIMITY
A constant describing an proximity sensor type.距离传感器
TYPE_ROTATION_VECTOR
A constant describing a rotation vector sensor type.
TYPE_TEMPERATURE
A constant describing a temperature sensor type 温度传感器
我们在编写传感器相关的代码时可以按照以下步骤:
第一步: 获得传感器管理器
SensorManger sm = (SensorManager).getSystemService(SENSOR_SERVICE);
第二步:为具体的传感器注册监听器 ,这里我们使用磁阻传感器Sensor.TYPE_ORIENTATION.
sm,registerListener (this,sm.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_FASTEST);
这里如果想注册其他的传感器,可以改变第一个参数值的传感器类型属性。我们应该根据手机中的实际存在的传感器来进行注册。如果手机中
不存在我们注册的传感器,就算我们注册了也不起什么作用。
第三个参数值表示获得传感器数据的速度,SENSOR_DELAY_FASTEST表示尽可能快的获取传感器数据,除了该值以外,还可以设置3个获取
传感器数据的速度值,这些值如下:
SENSOR_DELAY_GAME& 如果利用传感器开发游戏,建议使用该值。 一般大多数实时行较高的游戏使用该级别。
SENSOR_DELAY_NORMAL& 默认的获取传感器数据的速度。标准延迟,对于一般的益智类游戏或者EASY界别的游戏可以使用,但过低的采样率可能对一些赛车类游戏有跳帧的现象。
SENSOR_DELAY_UI&&& 若使用传感器更新UI, 建议使用该值。
SENSOR_DELAY_FASTEST:最低延迟,一般不是特别灵敏的处理不推荐使用,该模式可能造成手机电力大量消耗,而且由于传递的为大量的原始数据,算法处理不好将会影响游戏逻辑和UI的性能。
第三步,既然我们在第二部已经为传感器设置了监听。我们就要实现具体的监听方法,在android 中,应用程序使用传感器主要依赖于&& android.hardware.SensorEventListener 接口。该接口可以监听传感器各种事件。SensorEventListener 接口代码如下:
&&&&&&&&& public interface SensorEventListener {
&&&&&&&&&&&&&&&& public& void onSensorChanged(SensorEvent event) {
&&&&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&& public void onAccuracyChanged(Sensor sensor ,int accuracy ){
&&&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&&&
&&&&&&&&& }
&&&& 当传感器的值发生变化时,例如磁阻传感器方向改变时会调用OnSensorChanged(). 当传感器的精度发生变化时会调用OnAccuracyChanged()方法。
&首先我们可以先看一下android 开发文档中的注释及事例代码:
public class SensorActivity extends Activity, implements SensorEventListener {
private final SensorManager mSensorM
private final Sensor mA
public SensorActivity() {
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
public void onAccuracyChanged(Sensor sensor, int accuracy) {
public void onSensorChanged(SensorEvent event) {
Always make sure to disable sensors you don't need, especially when your activity is paused. Failing to do so can drain the battery in just a few hours. Note that the system will not disable sensors automatically when the screen turns off.
大家可以看到,文档里要求我们不需要的传感器尽量要解除注册,特别是我们的activity处于失去焦点的状态时。如果我们不按照以上去做的话,手机电池很快会被用完。
还要注意的是当屏幕关闭的时候,传感器也不会自动的解除注册。
所以我们可以利用activity 中的 onPause() 方法和onresume()方法。在onresume方法i中对传感器注册监听器,在onPause()
方法中解除注册。
以下为利用方向传感器写的一个简单的DEMO
public class SensorActivity extends Activity, implements SensorEventListener {
private final SensorManager mSensorM
private final Sensor mA
public SensorActivity() {
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
public void onAccuracyChanged(Sensor sensor, int accuracy) {
public void onSensorChanged(SensorEvent event) {
package net.blogjava.mobile.
import android.app.A
import android.hardware.S
import android.hardware.SensorE
import android.hardware.SensorEventL
import android.hardware.SensorM
import android.os.B
import android.widget.TextV
public class OrientationSensorTest extends Activity implements
SensorEventListener {
private SensorManager sensorManager =
private Sensor orientaionSensor =
private TextView textV
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setTitle("方向传感器DEMO");
textView = (TextView) findViewById(R.id.textview);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
orientaionSensor = sensorManager
.getDefaultSensor(Sensor.TYPE_ORIENTATION);
protected void onPause() {
super.onPause();
sensorManager.unregisterListener(this); // 解除监听器注册
protected void onResume() {
super.onResume();
sensorManager.registerListener(this, orientaionSensor,
SensorManager.SENSOR_DELAY_NORMAL); //为传感器注册监听器
public void onAccuracyChanged(Sensor sensor, int accuracy) {
public void onSensorChanged(SensorEvent event) {
float x = event.values[SensorManager.DATA_X];
float y = event.values[SensorManager.DATA_Y];
float z = event.values[SensorManager.DATA_Z];
textView.setText("x=" + (int) x + "," + "y=" + (int) y + "," + "z="
+ (int) z);
下面介绍android 的坐标系是如何定义x, y z 轴的。
x轴的方向是沿着屏幕的水平方向从左向右,如果手机不是正方形的话,较短的边需要水平放置,较长的边需要垂直放置。
Y轴的方向是从屏幕的左下角开始沿着屏幕的的垂直方向指向屏幕的顶端。
将手机放在桌子上,z轴的方向是从手机指向天空。
自从苹果公司在2007年发布第一代iPhone以来,以前看似和手机挨不着边的传感器也逐渐成为手机硬件的重要组成部分。如果读者使用过iPhone、HTC Dream、HTC Magic、HTC Hero以及其他的Android手机,会发现通过将手机横向或纵向放置,屏幕会随着手机位置的不同而改变方向。这种功能就需要通过重力传感器来实现,除了重力传感器,还有很多其他类型的传感器被应用到手机中,例如磁阻传感器就是最重要的一种传感器。虽然手机可以通过GPS来判断方向,但在GPS信号不好或根本没有GPS信号的情况下,GPS就形同虚设。这时通过磁阻传感器就可以很容易判断方向(东、南、西、北)。有了磁阻传感器,也使罗盘(俗称指向针)的电子化成为可能。
在Android应用程序中使用传感器要依赖于android.hardware.SensorEventListener接口。通过该接口可以监听传感器的各种事件。SensorEventListener接口的代码如下:
package android.
public interface SensorEventListener
&&& public void
onSensorChanged(SensorEvent event);
&&& public void
onAccuracyChanged(Sensor sensor, int accuracy);&&&
在SensorEventListener接口中定义了两个方法:onSensorChanged和onAccuracyChanged。当传感器的值发生变化时,例如磁阻传感器的方向改变时会调用onSensorChanged方法。当传感器的精度变化时会调用onAccuracyChanged方法。
onSensorChanged方法只有一个SensorEvent类型的参数event,其中SensorEvent类有一个values变量非常重要,该变量的类型是float[]。但该变量最多只有3个元素,而且根据传感器的不同,values变量中元素所代表的含义也不同。
在解释values变量中元素的含义之前,先来介绍一下Android的坐标系统是如何定义X、Y、Z轴的。
X轴的方向是沿着屏幕的水平方向从左向右。如果手机不是正方形的话,较短的边需要水平放置,较长的边需要垂直放置。
Y轴的方向是从屏幕的左下角开始沿着屏幕的垂直方向指向屏幕的顶端。
将手机平放在桌子上,Z轴的方向是从手机里指向天空。
下面是values变量的元素在主要的传感器中所代表的含义。
1.1方向传感器
在方向传感器中values变量的3个值都表示度数,它们的含义如下:
values[0]:该值表示方位,也就是手机绕着Z轴旋转的角度。0表示北(North);90表示东(East);180表示南(South);270表示西(West)。如果values[0]的值正好是这4个值,并且手机是水平放置,表示手机的正前方就是这4个方向。可以利用这个特性来实现电子罗盘,实例76将详细介绍电子罗盘的实现过程。
values[1]:该值表示倾斜度,或手机翘起的程度。当手机绕着X轴倾斜时该值发生变化。values[1]的取值范围是-180≤values[1]
≤180。假设将手机屏幕朝上水平放在桌子上,这时如果桌子是完全水平的,values[1]的值应该是0(由于很少有桌子是绝对水平的,因此,该值很可能不为0,但一般都是-5和5之间的某个值)。这时从手机顶部开始抬起,直到将手机沿X轴旋转180度(屏幕向下水平放在桌面上)。在这个旋转过程中,values[1]会在0到-180之间变化,也就是说,从手机顶部抬起时,values[1]的值会逐渐变小,直到等于-180。如果从手机底部开始抬起,直到将手机沿X轴旋转180度,这时values[1]会在0到180之间变化。也就是values[1]的值会逐渐增大,直到等于180。可以利用values[1]和下面要介绍的values[2]来测量桌子等物体的倾斜度。
values[2]:表示手机沿着Y轴的滚动角度。取值范围是-90≤values[2]≤90。假设将手机屏幕朝上水平放在桌面上,这时如果桌面是平的,values[2]的值应为0。将手机左侧逐渐抬起时,values[2]的值逐渐变小,直到手机垂直于桌面放置,这时values[2]的值是-90。将手机右侧逐渐抬起时,values[2]的值逐渐增大,直到手机垂直于桌面放置,这时values[2]的值是90。在垂直位置时继续向右或向左滚动,values[2]的值会继续在-90至90之间变化。
1.2加速传感器
&&& 该传感器的values变量的3个元素值分别表示X、Y、Z轴的加速值。例如,水平放在桌面上的手机从左侧向右侧移动,values[0]为负值;从右向左移动,values[0]为正值。读者可以通过本节的例子来体会加速传感器中的值的变化。要想使用相应的传感器,仅实现SensorEventListener接口是不够的,还需要使用下面的代码来注册相应的传感器。
//& 获得传感器管理器
SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
//& 注册方向传感器
sm.registerListener(this,
sm.getDefaultSensor(Sensor.TYPE_ORIENTATION),
SensorManager.SENSOR_DELAY_FASTEST);
如果想注册其他的传感器,可以改变getDefaultSensor方法的第1个参数值,例如,注册加速传感器可以使用Sensor.TYPE_ACCELEROMETER。在Sensor类中还定义了很多传感器常量,但要根据手机中实际的硬件配置来注册传感器。如果手机中没有相应的传感器硬件,就算注册了相应的传感器也不起任何作用。getDefaultSensor方法的第2个参数表示获得传感器数据的速度。SensorManager.SENSOR_DELAY_ FASTEST表示尽可能快地获得传感器数据。除了该值以外,还可以设置3个获得传感器数据的速度值,这些值如下:
SensorManager.SENSOR_DELAY_NORMAL:默认的获得传感器数据的速度。
SensorManager.SENSOR_DELAY_GAME:如果利用传感器开发游戏,建议使用该值。
SensorManager.SENSOR_DELAY_UI:如果使用传感器更新UI中的数据,建议使用该值。
1.3重力感应器
加速度传感器的类型常量是Sensor.TYPE_GRAVITY。重力传感器与加速度传感器使用同一套坐标系。values数组中三个元素分别表示了X、Y、Z轴的重力大小。Android SDK定义了一些常量,用于表示星系中行星、卫星和太阳表面的重力。下面就来温习一下天文知识,将来如果在地球以外用Android手机,也许会用得上。
public static final float GRAVITY_SUN= 275.0f;
public static final float GRAVITY_MERCURY= 3.70f;
public static final float GRAVITY_VENUS= 8.87f;
public static final float GRAVITY_EARTH= 9.80665f;
public static final float GRAVITY_MOON= 1.6f;
public static final float GRAVITY_MARS= 3.71f;
public static final float GRAVITY_JUPITER= 23.12f;
public static final float GRAVITY_SATURN= 8.96f;
public static final float GRAVITY_URANUS= 8.69f;
public static final float GRAVITY_NEPTUNE= 11.0f;
public static final float GRAVITY_PLUTO= 0.6f;
public static final float GRAVITY_DEATH_STAR_I= 0.145f;
public static final float GRAVITY_THE_ISLAND= 4.f;
1.4 光线传感器
光线传感器的类型常量是Sensor.TYPE_LIGHT。values数组只有第一个元素(values[0])有意义。表示光线的强度。最大的值是f。Android SDK将光线强度分为不同的等级,每一个等级的最大值由一个常量表示,这些常量都定义在SensorManager类中,代码如下:
public static final float LIGHT_SUNLIGHT_MAX =f;
public static final float LIGHT_SUNLIGHT=f;
public static final float LIGHT_SHADE=20000.0f;
public static final float LIGHT_OVERCAST= 10000.0f;
public static final float LIGHT_SUNRISE= 400.0f;
public static final float LIGHT_CLOUDY= 100.0f;
public static final float LIGHT_FULLMOON= 0.25f;
public static final float LIGHT_NO_MOON= 0.001f;
上面的八个常量只是临界值。读者在实际使用光线传感器时要根据实际情况确定一个范围。例如,当太阳逐渐升起时,values[0]的值很可能会超过LIGHT_SUNRISE,当values[0]的值逐渐增大时,就会逐渐越过LIGHT_OVERCAST,而达到LIGHT_SHADE,当然,如果天特别好的话,也可能会达到LIGHT_SUNLIGHT,甚至更高。
1.5陀螺仪传感器
&& 陀螺仪传感器的类型常量是Sensor.TYPE_GYROSCOPE。values数组的三个元素表示的含义如下:values[0]:延X轴旋转的角速度。
values[1]:延Y轴旋转的角速度。
values[2]:延Z轴旋转的角速度。
当手机逆时针旋转时,角速度为正值,顺时针旋转时,角速度为负值。陀螺仪传感器经常被用来计算手机已转动的角度,代码如下:
private static final float NS2S = 1.0f / .0f;
public void onSensorChanged(SensorEvent event)
&&& if (timestamp != 0)
&&& //& event.timesamp表示当前的时间,单位是纳秒(1百万分之一毫秒)
&&&&&&&&&&&&& final float dT = (event.timestamp - timestamp) * NS2S;
&&&&&&&&&&&&& angle[0] += event.values[0] * dT;
&&&&&&&&&&&&& angle[1] += event.values[1] * dT;
&&&&&&&&&&&&& angle[2] += event.values[2] * dT;
&&&& timestamp = event.
上面代码中通过陀螺仪传感器相邻两次获得数据的时间差(dT)来分别计算在这段时间内手机延X、 Y、Z轴旋转的角度,并将值分别累加到angle数组的不同元素上。
1.6其他传感器
其他传感器在前面几节介绍了加速度传感器、重力传感器、光线传感器、陀螺仪传感器以及方向传感器。除了这些传感器外,Android SDK还支持如下的几种传感器。关于这些传感器的使用方法以及与这些传感器相关的常量、方法,读者可以参阅官方文档。
近程传感器(Sensor.TYPE_PROXIMITY)
线性加速度传感器(Sensor.TYPE_LINEAR_ACCELERATION)
旋转向量传感器(Sensor.TYPE_ROTATION_VECTOR)
磁场传感器(Sensor.TYPE_MAGNETIC_FIELD)
压力传感器(Sensor.TYPE_PRESSURE)
温度传感器(Sensor.TYPE_TEMPERATURE)
虽然AndroidSDK定义了十多种传感器,但并不是每一部手机都完全支持这些传感器。例如,Google Nexus S支持其中的9种传感器(不支持压力和温度传感器),而HTC G7只支持其中的5种传感器。如果使用了手机不支持的传感器,一般不会抛出异常,但也无法获得传感器传回的数据。读者在使用传感器时最好先判断当前的手机是否支持所使用的传感器。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 cts sensor test 的文章

 

随机推荐