android 感測器
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上顯示重力感測器的變化
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感測器完全解析Android
- Android 方向感測器Android
- android 中感測器的使用Android
- 感測器-雨滴感測器(雨刷)
- Android感測器程式設計例項原始碼Android程式設計原始碼
- Android感測器程式設計帶例項(轉)Android程式設計
- 感測器噪聲
- Android利用感測器實現-仿微信搖一搖Android
- iOS 感測器集錦iOS
- FBG感測器模型模型
- 深度的Android感測器:近距離和陀螺儀 (有原始碼)Android原始碼
- 樹莓派-感測器篇樹莓派
- win10怎麼關閉感測器_win10禁用感測器功能的方法Win10
- 物聯網如何工作:感測器
- 影像感測器熱點技術
- Arduino 驅動火焰感測器模組UI
- 電磁波類感測器原理
- SCHNOKA:視覺感測器的好處視覺
- 感測器 Sensor 加速度【示例】
- Arduino 驅動煙霧感測器模組UI
- CMOS鐳射感測器GV系列
- INDEMIND:多感測器融合,機器人的必由之路機器人
- DHT11溫溼度感測器原理剖析
- 4、Pico Robot 感測器進階課程
- 感測器在自動駕駛中的應用自動駕駛
- iOS中加速度感測器的使用iOS
- 感測器事件解決方案的必需軟體事件
- Arduino 驅動模擬溫度感測器模組UI
- 機器人與觸覺感測技術的碰撞,一文初探人類與機器人的觸覺感測機器人
- 在樹莓派用C#+Winform實現感測器監測樹莓派C#ORM
- 無人機專用感測器,探測廢墟中的生命氣息無人機
- 使用 Arduino 和 LM35 溫度感測器監測溫度UI
- android 重力感應Android
- Xamarin Essentials教程使用加速度感測器Accelerometer
- Python實現 感測器的隨機佈置Python隨機
- 常見的感測器技術彙總簡介
- 物聯網感測器61個應用領域
- 無線感測器網路與資料交換解析