国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > OS > 安卓 > 正文

android驅(qū)動(dòng)程序之

2024-06-28 13:21:31
字體:
供稿:網(wǎng)友
android驅(qū)動(dòng)程序之 - sensor

上圖是android系統(tǒng)架構(gòu)圖,從中可以得知,sensor必貫穿架構(gòu)的各個(gè)層次。按照架構(gòu)層次,下面從五個(gè)方面來分析sensor架構(gòu):

1. sensor架構(gòu)之App層;

2. sensor架構(gòu)之Framework層;

3. sensor架構(gòu)之Libraries層;

4. sensor架構(gòu)之HAL層;

5. sensor架構(gòu)之Driver。

1. sensor架構(gòu)之App層

下面以g-sensor為例,寫一個(gè)簡單的apk,看一下sensor在App層到底是如何工作的,一般需要下面四個(gè)步驟來實(shí)現(xiàn)一個(gè)sensor應(yīng)用。

Step1:通過getSystemService獲取sensor服務(wù),其實(shí)就是初始化一個(gè)SensorManager實(shí)例;

1 SensorManager mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);

Step2:通過SensorManager的getDefaultSensor方法獲取指定類型的傳感器的sensor對(duì)象;

1 Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY); // 重力感應(yīng)

Step3:實(shí)現(xiàn)SensorEventListener接口的onSensorChanged和onAccuracyChanged方法;

1 SensorEventListenerlsn = new SensorEventListener() {2     public void onSensorChanged(SensorEvent e) { 3         //當(dāng)傳感器的值發(fā)生變化時(shí),會(huì)執(zhí)行這里4     }5 6     public void onAccuracyChanged(Sensor s, int accuracy) { 7         //當(dāng)傳感器的精度變化時(shí),會(huì)執(zhí)行這里8     }9 };

Step4:通過SensorManager的registerListener方法注冊監(jiān)聽,獲取傳感器變化值。

1 mSensorManager.registerListener(lsn,sensor, SensorManager.SENSOR_DELAY_GAME);

注:當(dāng)傳感器的值發(fā)生變化時(shí),會(huì)調(diào)用onSensorChanged方法;當(dāng)傳感器的精度變化時(shí)會(huì)調(diào)用onAccuracyChanged方法。

完整示例代碼:

 1 public class main extends Activity {     2     PRivate float x, y, z;     3     protected void onCreate(Bundle savedInstanceState) {     4         super.onCreate(savedInstanceState);    5         SensorManager mSensorManager= (SensorManager) getSystemService(SENSOR_SERVICE);    6         Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);   7         SensorEventListener lsn = new SensorEventListener() {   8    9                     public void onSensorChanged(SensorEvent e) {  10                             System.out.println(e.value[0]);  11                             System.out.println(e.value[1]);  12                             System.out.println(e.value[2]);  13                      }  14                     public void onAccuracyChanged(Sensor s, int accuracy) {  15                     }      16                };  17                mSensorManager.registerListener(lsn, sensor, SensorManager.SENSOR_DELAY_GAME);  18 }

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 澄迈县| 车险| 浦北县| 巩留县| 介休市| 达尔| 鹤壁市| 小金县| 邻水| 阜南县| 德庆县| 屯留县| 文水县| 逊克县| 文登市| 乌审旗| 安宁市| 武鸣县| 宜宾市| 德江县| 晋城| 宝丰县| 福泉市| 顺昌县| 高雄市| 咸丰县| 蒲城县| 丰镇市| 临城县| 包头市| 都昌县| 萝北县| 桓台县| 小金县| 封开县| 杨浦区| 海原县| 克东县| 繁昌县| 怀化市| 塔城市|