Ich schreibe eine App mit Android Things und möchte mit dem bmx280
driver Umgebungswerte (Temperatur, Luftdruck, etc) lesen. Es scheint zwei verschiedene Treiber zu geben: Bmx280
und Bmx280SensorDriver
. Welchen sollte ich verwenden um Temperaturwerte/Druck abzulesen?Unterschied zwischen Bmx280 und Bmx280SensorDriver-Klassen in Android Things bmx280 Treiber?
Antwort
Bmx280
können Sie direkt mit dem Sensor peripheren interagieren, so dass Sie manuell Temperaturproben aus lesen kann:
private Bmx280 bmx280;
try {
bmx280 = new Bmx280(i2cBusName);
bmx280.setTemperatureOversampling(Bmx280.OVERSAMPLING_1X);
float temperature = bmx280.readTemperature();
} catch (IOException e) {
// handle errors
}
// remember to close bmx280 later
Bmx280SensorDriver
soll mit dem System registriert sein. In diesem Fall interagieren Sie nicht mit der Hardware direkt, anstatt Sie den Standard-Android verwenden SensorManager
APIs für Temperaturmessungen zu hören:
private Bmx280SensorDriver sensorDriver;
private SensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
try {
sensorDriver = new Bmx280SensorDriver(BoardDefaults.getI2cBus());
sensorManager.registerDynamicSensorCallback(mDynamicSensorCallback);
sensorDriver.registerTemperatureSensor();
} catch (IOException e) {
// handle errors
}
private SensorManager.DynamicSensorCallback mDynamicSensorCallback
= new SensorManager.DynamicSensorCallback() {
@Override
public void onDynamicSensorConnected(Sensor sensor) {
if (sensor.getType() == Sensor.TYPE_AMBIENT_TEMPERATURE) {
// Our sensor is connected. Start receiving temperature data.
sensorManager.registerListener(mTemperatureListener, sensor,
SensorManager.SENSOR_DELAY_NORMAL);
}
}
/* other callbacks omitted */
};
// remember to unregister and close sensorDriver later
Der Vorteil der letzteren Methode ist, dass das Gerät andere Möglichkeiten haben könnte Sensorwerte zu generieren , so müssen Sie sich nicht nur auf die Bmx280
verlassen, falls etwas anderes bessere Messwerte liefert, oder die Bmx280
funktioniert nicht mehr. (Sie können sich das wie den fusionierten Location-Provider von Android vorstellen; Standortdaten können von verschiedenen Anbietern unter anderen Bedingungen, und das System versucht, zu jedem Zeitpunkt die besten Informationen zu melden.) Außerdem kümmert sich das System um die Abfrage der Sensordaten, sodass Sie keine eigene Logik dafür erstellen müssen.
TL; DR - Wenn Sie Sensordaten bei Bedarf manuell lesen möchten, können Sie Bmx280
direkt verwenden. Wenn Sie regelmäßige Abfragen der Sensorwerte wünschen und sich nicht darum kümmern, was die Daten generiert, verwenden Sie Bmx280SensorDriver
und die SensorManager
APIs.
- 1. Unterschied zwischen Treiber und Provider
- 2. Unterschied zwischen einem Treiber und einer Bibliothek?
- 3. Was ist der Unterschied zwischen physischem Treiber und virtuellem Treiber?
- 4. Cardview in Android Things
- 5. Android Things Emulator
- 6. Android Things Pin Namenskonvention
- 7. Android Things Mikrofon Unterstützung
- 8. OTA für Android Things
- 9. Was ist der Unterschied zwischen einem WDM-Treiber, einem KMDF-Treiber und einem UMDF-Treiber?
- 10. Android Things und Bluetooth Gatt Client (Zentral)
- 11. Unterschied zwischen Adapter und Loader in Android
- 12. Unterschied zwischen RTC und RTC_WAKEUP in Android
- 13. Unterschied zwischen SDK und NDK in Android
- 14. Unterschied zwischen Kontextmenü und Optionsmenü in Android
- 15. Unterschied zwischen Android: Breite und android: layout_width
- 16. Unterschied zwischen Android: windowBackground und Android: colorBackground?
- 17. Unterschied zwischen Android: ID und Android: LabelFor?
- 18. Unterschied zwischen Android: layout_alignParentTop und android: layout_alignParentStart
- 19. Unterschied zwischen ANSI und Unicode-Treiber von MySQL
- 20. Android Things: nimm einen Screenshot
- 21. Unterschied zwischen Android
- 22. Unterschied zwischen Android Begriffen?
- 23. Google Play Store fehlt in Android Things
- 24. Unterschied zwischen `% in%` und `==`
- 25. Android - Unterschied zwischen Thread und AsyncTask?
- 26. Unterschied zwischen Android: actionMenuTextColor und actionMenuTextColor
- 27. Unterschied zwischen AOT und JIT-Compiler Android
- 28. Xamarin Android: Unterschied zwischen GPSProvider und NetworkProvider
- 29. Unterschied zwischen BOOT_COMPLETED und QUICKBOOT_POWERON auf Android
- 30. Android - Unterschied zwischen View.OnLayoutChangeListener und ViewTreeObserver.OnGlobalLayoutListener