Wykrywanie orientacji urządzenia
Muszę wykryć zmianę orientacji urządzenia z systemem Android bez ręcznego grania danymi z czujnika, utrzymując orientację na orientację
onConfigurationChange
nie zadziała, ponieważ moja aktywność nie będzie się obracać.
Zabawa z danymi z czujnika w celu wykrycia zmiany orientacji Uważam to za wynalazek koła, ponieważ android ma już wbudowaną implementację algorytmu do wykrywania zmiany orientacji urządzenia. Z drugiej strony wykrywanie zmiany orientacji nie jest prostym sprawdzeniem w ten sposób.
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER || event.values.length < 3) {
return;
}
//getResources().getConfiguration().orientation;
if (event.values[1] < 6.5 && event.values[1] > -6.5) {
if (orientation!=1) {
Log.d("Sensor", "Protrait");
}
orientation=1;
} else {
if (orientation!=0) {
Log.d("Sensor", "Landscape");
}
orientation=0;
}
}
To naprawdę wymaga rzeczywistego przetwarzania danych, takich jak filtracja z hałasu i nagłych krótkich wstrząsów / obrotów.
Czy są jakieś pomysły, w jaki sposób można wykryć orientację urządzenia za pomocą starszych usług? (Po raz kolejny będę trzymać swoją aktywność w pewnej orientacjionConfigurationChange
nie będzie działać)