`
buerkai
  • 浏览: 169552 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

android传感器

阅读更多
添加当重力变化时的处理函数
在创建监听器时调用的函数 doSomething(x, y, z) 是自己定义的方法。
当手机倾斜方向改变时,监听器会调用该方法。
我们要做的,就是填充该方法,用于在重力发生变化时进行我们自己的处理。
当 x=y=0 时,手机处于水平放置状态。
当 x=0 并且 y>0 时,手机顶部的水平位置要大于底部,也就是一般接听电话时手机所处的状态。
当 x=0 并且 y<0 时,手机顶部的水平位置要小于底部。手机一般很少处于这种状态。
当 y=0 并且 x>0 时,手机右侧的水平位置要大于左侧,也就是右侧被抬起。
当 y=0 并且 x<0 时,手机右侧的水平位置要小于左侧,也就是左侧被抬起。
当 z=0 时,手机平面与水平面垂直。
当 z>0 时,手机屏幕朝上。
当 z<0 时,手机屏幕朝下。

1. Accelrator的x,y,z轴的正负向:

手机屏幕向上水平放置时: (x,y,z) = (0, 0, -10) 而不是 (0, 0, 10)
当手机顶部抬起时: y减小,且为负值
当手机底部抬起时: y增加,且为正值
当手机右侧抬起时: x减小,且为负值
当手机左侧抬起时: x增加,且为正值

2. Accelrator的z轴的变化:

手机屏幕向上水平放置时,z= -10
手机屏幕竖直放置时, z= 0
手机屏幕向下水平放置时,z= 10

3. 当x变为+5时, 手机画面切换为竖向

当x变为-5时, 手机画面切换为横向

4. Android传感器相关的类在SDK1.1和SDK1.5中不一样,因此实现代码也不一样

5. Android传感器类型分为:方向、加速表、光线、磁场、临近性、温度等

程序中分别为:
方向: SensorManager.SENSOR_ORIENTATION,
加速表: SensorManager.SENSOR_ACCELEROMETER
光线: SensorManager.SENSOR_LIGHT
磁场: SensorManager.SENSOR_MAGNETIC_FIELD
临近性: SensorManager.SENSOR_PROXIMITY
温度: SensorManager.SENSOR_TEMPERATURE
采样率:最快、游戏、普通、用户界面。当应用程序请求特定的采样率时,其实只是对Android传感器子系统的一个提示,或者一个建议。不保证特定的采样率可用。
最快: SensorManager.SENSOR_DELAY_FASTEST
游戏: SensorManager.SENSOR_DELAY_GAME
普通: SensorManager.SENSOR_DELAY_NORMAL
用户界面: SensorManager.SENSOR_DELAY_UI
准确性: 高、低、中、不可靠。

6. Orientation Sensor三个坐标的含义:

values[0]:方位角(水平旋转角),简单的说就是手机的头现在朝向哪个方位,0=北、90=东、180=南、270=西(可是好像不太准)
values[1]:纵向旋转角,0=面朝上平置、-90=垂直向上、-180/180=面朝下平置、90=垂直向下
values[2]:橫向旋转角,0=朝前、90=往右倒、-90=往左倒

7. 自动侦测手机方向

要让手机自动旋转的话,只要在AndroidManifest.xml里面把ORIENTAION改成sensor就好,可是要让Activity 侦测到方向改变的话,要去抓Activity的Display:

1. if (getWindowManager().getDefaultDisplay().getOrientation() == 0) {
2. //Do some portrait
3. } else {
4. //Do some Landscape

要注意的是Android传感器中的常数和ActivityInfo的不一样,0是竖的,1是橫的。然后因为每次改变屏幕方向都會引发一连串的 onPause, onDestory, onCreate,所以需要的处理全部写在onCreate里面就大功告成。
分享到:
评论
1 楼 飞扬云 2011-11-28  
楼主:


1. Accelrator的x,y,z轴的正负向:

手机屏幕向上水平放置时: (x,y,z) = (0, 0, -10) 而不是 (0, 0, 10)
当手机顶部抬起时: y减小,且为负值
当手机底部抬起时: y增加,且为正值
当手机右侧抬起时: x减小,且为负值
当手机左侧抬起时: x增加,且为正值

2.
当 x=y=0 时,手机处于水平放置状态。
当 x=0 并且 y>0 时,手机顶部的水平位置要大于底部,也就是一般接听电话时手机所处的状态。
当 x=0 并且 y<0 时,手机顶部的水平位置要小于底部。手机一般很少处于这种状态。
当 y=0 并且 x>0 时,手机右侧的水平位置要大于左侧,也就是右侧被抬起。
当 y=0 并且 x<0 时,手机右侧的水平位置要小于左侧,也就是左侧被抬起。
当 z=0 时,手机平面与水平面垂直。
当 z>0 时,手机屏幕朝上。
当 z<0 时,手机屏幕朝下。


我觉得这两条有问题,相互矛盾。

因为第一条说了,当手机右侧抬起时,X减小,并且为负值,但是第2条里又说当y=0并且x<0时,手机左侧抬起,这就矛盾了,请给出解释。

相关推荐

    ANDROID传感器开发.pdf

    ANDROID 传感器开发概述 Android 是一个面向应用程序开发的丰富平台,它拥有许多具有吸引力的用户界面元素、数据管理和网络应用等优秀的功能。Android 还提供了很多颇具特色的接口。本文我们将分别介绍这些吸引...

    Android传感器高级编程

    《Android传感器高级编程》是专为开发者深入理解并掌握Android平台上的传感器技术而编写的一本专业书籍。在Android系统中,传感器是设备与环境交互的关键组件,它们收集各种物理和环境数据,如加速度、陀螺仪、磁力...

    Android传感器开发与智能设备案例实战

    Android传感器开发与智能设备案例实战 --朱元波,包含了Android传感器分析,地图定位,接近警报,光线、磁场、加速度、陀螺仪、方向、旋转向量、距离、气压、温度、湿度传感器等,以及蓝牙系统、语音识别、手势识别...

    Android传感器高级编程 中文版 带书签 PDF

    《Android传感器高级编程》这本书是针对Android平台的传感器技术进行深入探讨的专业著作,旨在帮助开发者理解和利用Android系统中的传感器功能,提升应用的创新性和实用性。这本书由清华大学出版社出版,共481页,...

    android传感器使用方法

    "Android传感器使用方法" Android传感器是指安卓系统中用来感知外部环境、设备状态和用户行为的硬件组件。 Android系统提供了多种类型的传感器,包括动作传感器、环境传感器、姿态传感器等。下面将详细介绍Android...

    android 传感器

    通过Sensortest这个文件名,我们可以推测这是一个关于测试Android传感器的项目,可能包含了一些示例代码或测试脚本来演示如何使用Android传感器API。实际的项目中,可能会包含对不同传感器的测试用例,以及数据记录...

    android传感器高级编程源码+apk

    这个“android传感器高级编程源码+apk”资源正是针对这一主题,帮助开发者深入理解和实践Android传感器的高级用法。 首先,我们要理解Android传感器的基本概念。Android系统通过SensorManager服务提供了对各种...

    Android传感器、无线传输、与媒体硬件功能开发

    Android课程,蓝牙,android传感器,无线传输与媒体硬件功能开发

    Android 传感器高级编程高清中文pdf

    《Android传感器高级编程》利用你所需的知识和代码来武装你,帮助你很好地利用Android中的传感器。从确定智能手机的位置和解释物理传感器,到处理图像、音频和识别语音,你将学会如何有效地调用传感器相关的API。...

    利用android传感器实现手机摇一摇解除闹铃

    在Android平台上,我们可以利用内置的传感器系统来实现各种创新的功能,比如本文提到的"手机摇一摇解除闹铃"。这个功能允许用户在闹钟响起时,通过简单地摇动手机来停止闹铃,而无需触摸屏幕。接下来,我们将深入...

    极客学院Android传感器源码及PPT

    极客学院的Android传感器课程涵盖了多个方面的内容,包括蓝牙、照相机和NFC(近场通信)等核心功能的源码分析。通过学习这些源码,开发者可以深入理解Android系统如何与硬件交互,以及如何利用这些硬件功能来构建更...

    Android传感器应用实例

    "Android传感器应用实例"是一个专为学习Android传感器开发而设计的项目,通过两个具体的Activity,深入浅出地展示了如何利用Android的传感器API。 第一个Activity的主要目标是展示手机中的传感器数量和类型。在...

    Android传感器应用之摇一摇小球运动实现

    在Android平台上,传感器应用是移动开发的一个重要领域,它允许开发者创建各种有趣和实用的交互式功能。"摇一摇"动作就是一个常见的用户交互模式,常用于游戏、抽奖或者清理缓存等场景。本篇文章将深入探讨如何在...

    android传感器_android_

    在Android平台上,传感器技术是移动应用开发中的一个重要组成部分,它为开发者提供了与设备硬件交互的能力,从而实现各种创新的功能。本示例源码主要涵盖了三种常见的传感器:加速度传感器、方位传感器和光线传感器...

    android传感器总结

    以下是对"android传感器总结"这一主题的详尽解析。 一、Android传感器类型 Android系统支持多种传感器类型,包括: 1. **加速度传感器**(Accelerometer):测量设备在X、Y、Z轴上的线性加速度,通常用于识别设备...

Global site tag (gtag.js) - Google Analytics