資料參考1:android官方文檔
資料參考2:挺不錯(cuò)的中文文檔
- 首先需要?jiǎng)?chuàng)建一個(gè)傳感器的管理器
private SensorManager sensorManager;
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
- 獲取手機(jī)支持的傳感器列表,之后根據(jù)這個(gè)列表來創(chuàng)建傳感器對(duì)象
private List<Sensor> sensors = new ArrayList<>();
sensors = sensorManager.getSensorList(Sensor.TYPE_ALL);
- 遍歷傳感器列表,并且注冊(cè)
for(Sensor sensor:sensors){
sensorManager.registerListener(SensorListener, sensorManager.getDefaultSensor(sensor.getType()), SensorManager.SENSOR_DELAY_NORMAL);
}
- 具體監(jiān)聽器代碼
final SensorEventListener SensorListener = new SensorEventListener() {
public void onSensorChanged(SensorEvent sensorEvent) {
//當(dāng)sensor的值發(fā)生變化的時(shí)候會(huì)觸發(fā)這個(gè)回調(diào)方法
editor.putString(sensorEvent.sensor.getName(),
String.valueOf(sensorEvent.values[0]) + "\r"
//+ "y=" + String.valueOf(sensorEvent.values[1]) + "\r"
//+ "z=" + String.valueOf(sensorEvent.values[2]) + "\r"
);
editor.apply();
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
//當(dāng)精度變化的時(shí)候來處理
}
};
這個(gè)時(shí)候就已經(jīng)可以獲取所有的傳感器信息了。
- 千萬不要忘了最后注銷3膛痢尽超!
sensorManager.unregisterListener(SensorListener);