Android特色開(kāi)發(fā)之傳感器和語(yǔ)音識(shí)別
}
}
protected void onPause()
{
if (mRegisteredSensor)
{
//如果調(diào)用了registerListener
//這里我們需要unregisterListener來(lái)卸載/取消注冊(cè)
mSensorManager.unregisterListener(this);
mRegisteredSensor = false;
}
super.onPause();
}
//當(dāng)精準(zhǔn)度發(fā)生改變時(shí)
//sensor->傳感器
//accuracy->精準(zhǔn)度
public void onAccuracyChanged(Sensor sensor, int accuracy)
{
//處理精準(zhǔn)度改變
}
// 當(dāng)傳感器在被改變時(shí)觸發(fā)
public void onSensorChanged(SensorEvent event)
{
// 接收方向傳感器的類型
if (event.sensor.getType() == Sensor.TYPE_ORIENTATION)
{
//這里我們可以得到數(shù)據(jù),然后根據(jù)需要來(lái)處理
//由于模擬器上面無(wú)法測(cè)試效果,因此我們暫時(shí)不處理數(shù)據(jù)
float x = event.values[SensorManager.DATA_X];
float y = event.values[SensorManager.DATA_Y];
float z = event.values[SensorManager.DATA_Z];
}
}
}
上面的例子中演示了如何獲得方向傳感器的方向、加速度等信息,我們可以根據(jù)得到的數(shù)值與上一次得到的數(shù)值之間的關(guān)系來(lái)進(jìn)行需要的操作。SensorManager中還有很多常量和一些常用的方法,如下:
getDefaultSensor:得到默認(rèn)的傳感器對(duì)象。
getInclination:得到地磁傳感器傾斜角的弧度值。
getOrientation:得到設(shè)備旋轉(zhuǎn)的方向。
getSensorList:得到指定傳感器的列表。
評(píng)論