我使用加速計傳感器,並通過onSensorChanged android系統在模擬器不斷得到觸發
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mAcceleratorSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mSensorManager.registerListener(this, mAcceleratorSensor , SensorManager.SENSOR_DELAY_NORMAL);
這是我onSensorChanged看起來像
@Override
public final void onSensorChanged(SensorEvent event) {
int sensorType = event.sensor.getType();
switch(sensorType){
case Sensor.TYPE_ACCELEROMETER:
float valueX = event.values[0];
float valueY = event.values[1];
float valueZ = event.values[2];
Log.d(TAG, "Sensor Changed value:"+valueX+":"+valueY+":"+valueZ);
break;
}
然而這就是註冊了相同的監聽器我在我的日誌中看到
01-12 02:01:18.063 19691-19691/com.taxis.locationupdates2 D/LocationActivity: Sensor Changed value:2.0:2.0:2.0
01-12 02:01:18.129 19691-19691/com.taxis.locationupdates2 D/LocationActivity: Sensor Changed value:2.0:2.0:2.0
它一直在調用onSensorC即使數值沒有變化,也會在無限循環中掛起。我還沒有用真實設備測試過它。是否有任何設置來控制相同。
如果不是真正的設備,你在測試什麼?模擬器與Android Studio或其他東西打包在一起?我寫了一個使用加速度計的應用程序,我遇到的唯一問題是便宜的設備可能非常嘈雜。 –
我正在用AndroidStudio打包的模擬器上測試它。 – BKSingh