我正在構建的應用程序使用接近傳感器。嘗試在不同的手機中,我發現接近傳感器在不同的手機中有不同的(最小,最大)值(我的HTC感覺覆蓋0和覆蓋9,而xperia覆蓋0和未覆蓋1)。所以問題是: 如何獲得接近傳感器的最小最大值?Android - 獲取接近傳感器的最小值和最大值
2
A
回答
7
我認爲所有設備的接近傳感器的最小值爲0
。並獲得最大範圍...
SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor proximitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
proximitySensor.getMaximumRange();
4
根據文檔:
Some proximity sensors only support a binary near or far measurement.
In this case, the sensor should report its maximum range value in the far state
and a lesser value in the near state
所以接近傳感器甚至可以沒有最小值和最大值。那麼你應該比較它的價值與proximitySensor.getMaximumRange()
。
0
每個接近傳感器都不同。您必須監視onSensorChanged()中的值並記住最小值和最大值。它工作正常。這是我的代碼,用於檢查附近的狀態。
private float proximityCalibratedMax = Float.MIN_VALUE;
...
public void onSensorChanged(SensorEvent event) {
if(event.values[0] > proximityCalibratedMax){
proximityCalibratedMax = event.values[0];
}
if (event.sensor.getType() == Sensor.TYPE_PROXIMITY && proximityCalibratedMax != Float.MIN_VALUE) {
if (event.values[0] < proximityCalibratedMax) {
prevNear = true;
sensorTimestamp = new Date().getTime();
} else {
long currentTimestamp = new Date().getTime();
prevNear = false;
openAutifyCarMode();
}
}
}
相關問題
- 1. 獲取最小值和最大值
- 2. Android:獲取光傳感器的最大值
- 3. 獲取最接近的值
- 4. 獲取鏈接列表中的最小值和最大值
- 5. 獲取列和其他列值的最小值和最大值
- 6. 如何獲取Android接近傳感器的當前價值?
- 7. Python:用於獲取最大值和最小值而不使用最大值和最小值函數的程序
- 8. 最大值和最小值?
- 9. 獲取最小值和最大值值從多行事件
- 10. PHP讀取文件並獲取最大值和最小值
- 11. 獲取最近的小於值
- 12. 獲取Array [JSP]中的最小值和最大值
- 13. 獲取wav文件的最小值,最大值和總長度
- 14. 獲取文件中尺寸的最大值和最小值
- 15. 如何獲取字符串的最小值和最大值?
- 16. Mysql:獲取日期的最小值和最大值
- 17. 如何獲取隊列的最小值和最大值?
- 18. 使用NSArray獲取對象的最小值和最大值
- 19. Java獲取幾個浮點數的最小值和最大值
- 20. 獲取PHP數組中的最小值和最大值
- 21. 如何獲取輸入的最小值和最大值angularjs
- 22. 獲取數組各部分的最小值和最大值
- 23. 獲取範圍的最小值和最大值
- 24. JSpinner獲取最大最小值
- 25. 獲取最接近值的MySQL
- 26. LINQ獲取最接近的值?
- 27. C#從列表中獲取最小值和最大值
- 28. T-sql每天獲取最小值和最大值
- 29. 從數組中獲取最小值和最大值 - Java
- 30. 使用LINQ獲取最小值和最大值使用LINQ
「接近傳感器的最小值爲0」對所有設備均爲真。例如,對於某些「摩托羅拉Moto G」,最小值爲3釐米,最大值爲100釐米 –