Jeśli użytkownik przewróci telefon, chcę na to zareagować, zatrzymując czytanie tekstu na mowę. Byłaby to fajna funkcja dla mojej aplikacji, ale jak mogę wykryć ten ruch? Nie jestem obeznany z czujnikami ruchu i nie mogłem znaleźć tego konkretnego detektora ruchu w dowolnym miejscu, głównie orientacje ekranu. Dzięki za pomoc!Jak wykryć ruch obrotu w systemie Android?
Odpowiedz
To przykładowe działanie demonstruje, w jaki sposób czujnik grawitacji urządzenia może zostać użyty do wykrycia, kiedy urządzenie jest odwracane. W metodzie onSensorChanged()
określenie factor
określa, jak należy zakończyć "przewrócenie". Typowy zakres może wynosić od 0,7 do 0,95.
Obsługa czujnika grawitacyjnego została dodana w interfejsie API Androida 9. Nie wszystkie urządzenia mają czujnik grawitacji.
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private static final String TAG = "Demo";
private SensorManager mSensorManager;
private Sensor mGravitySensor;
private boolean mFacingDown;
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// nothing
}
@Override
public void onSensorChanged(SensorEvent event) {
final float factor = 0.95F;
if (event.sensor == mGravitySensor) {
boolean nowDown = event.values[2] < -SensorManager.GRAVITY_EARTH * factor;
if (nowDown != mFacingDown) {
if (nowDown) {
Log.i(TAG, "DOWN");
} else {
Log.i(TAG, "UP");
}
mFacingDown = nowDown;
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mGravitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);
if (mGravitySensor == null) {
Log.w(TAG, "Device has no gravity sensor");
}
}
@Override
protected void onResume() {
super.onResume();
if (mGravitySensor != null) {
mSensorManager.registerListener(this, mGravitySensor, SensorManager.SENSOR_DELAY_NORMAL);
}
}
@Override
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
}
}
dziękuję! Wypróbuję to w poniedziałek, kiedy jestem z powrotem w college'u, robię swoją aplikację jako zadanie. (nie zapomnisz o przyjęciu tego :) –
Czy możesz mi pomóc, jak mogę to wykorzystać (przetestowałem, działa dobrze) w klasie? Chcę go używać w wielu działaniach, więc pomyślałem, że zaimplementuję to wszystko w klasie publicznej, ale mając problemy z jej działaniem, teraz otrzymuję 0 errorst, tylko aplikacja nie uruchamia się na moim telefonie: O –
w rzeczywistości aplikacja nie zaczynanie było z zupełnie innego powodu, po prostu musiałem usunąć go z mojego telefonu i zainstalować go ponownie. –
- 1. Jak wykryć obecność mikrofonu w systemie Android?
- 2. W systemie Android, jak mierzyć ruch danych w interfejsie aplikacji
- 3. Jak monitorować ruch HTTP/S/URL w systemie Android?
- 4. Jak wykryć orientację do góry nogami w systemie Android?
- 5. Wykrywanie osi obrotu z punktu obrotu
- 6. Jak używać wektora obrotu i translacji OpenCV z OpenGL ES w systemie Android?
- 7. Jak uzyskać aktualną godzinę w systemie Android?
- 8. Jak wysłać zdarzenie wskaźnika w systemie Android?
- 9. Układ android-ziemia i obsługa obrotu ekranu
- 10. Ruch przechwytujący ruch globalny
- 11. Android: Przełącz ustawienie ustawienia obrotu przyspieszeniomierza
- 12. Używam animacji Android obrócić ImageView, ale ruch jest bardzo niepewny
- 13. Zagnieżdżone przewijanie w systemie Android
- 14. Jak śledzić użycie aplikacji w systemie Android? Jak wykryć, kiedy uruchamiane jest działanie?
- 15. Punkt obrotu w prostokącie
- 16. Jak przechwytywać ruch w pythonie
- 17. jak wykryć, czy rozwijane menu jest wyświetlane powyżej lub poniżej pokrętła w systemie Android?
- 18. Jak wykryć dzwonek połączeń wychodzących w systemie Android przy użyciu klasy Visualizer?
- 19. Jak wykryć, czy w systemie plików rozróżniana jest wielkość liter?
- 20. Jak wykryć spadek UIWebview w systemie iOS 11?
- 21. Jak wykryć uruchamianie innej aplikacji w systemie iOS 11?
- 22. Jak możemy wykryć głośność systemu w systemie Windows 8?
- 23. oddzwonienie w systemie Android?
- 24. Jak przekonwertować obrót kwaterniona na ruch kierownicy?
- 25. Jak wykryć użycie sterty wielkości aplikacji Android?
- 26. Jak określić kierunek obrotu w przejściach CSS3?
- 27. Jak wykryć kodowanie pliku?
- 28. Android - czy można wykryć uśmiech?
- 29. Nie mogę zrozumieć mechanizmu obrotu w iOS6
- 30. Jak odtwarzać plik GIF w systemie Android?
Tylko myśl: jeśli „oddanie oblicze telefonu w dół” jest OK (w przeciwieństwie do po prostu obracając go w powietrzu), a następnie wykrywa nagłe ściemnienie światła otoczenia może działać ([patrz tutaj] (http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_LIGHT)) Nie wiem, czy jest na to słuchacz. – TripeHound
sprawdzi to później (w poniedziałek), jeśli mogę tego użyć. Dokumentacja mówi, że czujniki otoczenia są znacznie łatwiejsze w użyciu, więc mam nadzieję :) –