當前位置:編程學習大全網 - 網絡軟體 - android手機都有哪些sensor

android手機都有哪些sensor

1.Sensor Type

重力感應/加速度傳感器 (G-Sensor)

光感應 (Light-Sensor)

溫度感應

方向感應

磁場、

臨近性

2.如何實現Sensor編程

a.獲取系統服務(SENSOR_SERVICE)返回壹個SensorManager 對象

sensormanager = (SensorManager)getSystemSeriver(SENSOR_SERVICE);

b.通過SensorManager對象獲取相應的Sensor類型的對象

sensorObject = sensormanager.getDefaultSensor(sensor Type);

c.聲明壹個SensorEventListener 對象用於偵聽Sensor 事件,並重載onSensorChanged方法

SensorEventListener sensorListener = new SensorEventListener(){

};

d.註冊相應的SensorService

sensormanager.registerListener(sensorListener, sensorObject, Sensor TYPE);

e.銷毀相應的SensorService

sensormanager.unregisterListener(sensorListener, sensorObject);

f: SensorListener 接口是傳感器應用程序的中心。它包括兩個必需方法:

onSensorChanged(int sensor,float values[]) 方法在傳感器值更改時調用。

該方法只對受此應用程序監視的傳感器調用(更多內容見下文)。該方法的參數包括:壹個整數,指示更改的傳感器;壹個浮點值數組,表示傳感器數據本身。有些傳感器只提供壹個數據值,另壹些則提供三個浮點值。方向和加速表傳感器都提供三個數據值。

當傳感器的準確性更改時,將調用 onAccuracyChanged(int sensor,int accuracy) 方法。參數包括兩個整數:壹個表示傳感器,另壹個表示該傳感器新的準確值。

3.關於G-Sensor

Android 加速度傳感器的類型是 Sensor.TYPE_ACCELEROMETER

通過 android.hardware.SensorEvent 返回加速度傳感器值。

加速度傳感器返回值的單位是加速度的單位 m/s^2(米每二次方秒),有三個方向的值分別是

values[0]: x-axis 方向加速度

values[1]: y-axis 方向加速度

values[2]: z-axis 方向加速度

其中x,y,z方向的定義是以水平放置在的手機的右下腳為參照系坐標原點

x 方向就是手機的水平方向,右為正

y 方向就是手機的水平垂直方向,前為正

y 方向就是手機的空間垂直方向,天空的方向為正,地球的方向為負

需要註意的是,由於地球固有的重力加速度g (值為9.8 m/s^2),

因此現實中實際加速度值應該是 z方向返回值 - 9.8 m/s^2.

比如妳以 2 m/s^2 的加速度將手機拋起,這時z方向的返回值應該是 11.8 m/s^2.

反之若以手機以2 m/s^2 的加速度墜落,則z方向的返回值應該是 7.8 m/s^2.

x,y方向則沒有上述限制。

  • 上一篇:雙城故事影片影評 觀後感
  • 下一篇:螞蟻森林地球衛士勛章什麽時間有
  • copyright 2024編程學習大全網