Jak określa się domyślną orientację ekranu w Androidzie?

11

W telefonach z Androidem orientacja zwykle jest domyślnie ustawiona na pionową. Po wyłączeniu automatycznego obracania ekran zawsze pozostanie w trybie pionowym.

Na tabletach z Androidem orientacja zwykle jest domyślnie ustawiona na poziomą. Po wyłączeniu automatycznego obracania ekran zawsze pozostanie w trybie poziomym.

Najwyraźniej nie przewidziano tabletek do leżenia na boku. Gdy to robię, nie ma sposobu, aby tablet pozostał w trybie pionowym - z automatycznym obracaniem lub bez automatycznego obracania ekranu utknął w poziomie.

Ponieważ zmiana grawitacji jest dla mnie bardzo trudna, próbuję dowiedzieć się, czy mogę zhakować tablet do domyślnego trybu portretowego. Moje pytanie brzmi: gdzie by to było ustawione? Ponieważ nie mogę znaleźć aplikacji, które mogłyby wymusić zmianę orientacji, mam wrażenie, że jest to osadzone gdzieś głęboko i niedostępne w systemie operacyjnym. Czy jest to gdzieś w pliku właściwości? Czy jest osadzony głęboko w sprzęcie? Gdzie mogę zacząć szukać?

Mój konkretny tablet to Notion Ink Adam Running BeastyRom 2.2.1 + Clemsyn

edycja: zapytał także tutaj: http://forum.xda-developers.com/showthread.php?p=14315083#post14315083

Fostandy
źródło

Odpowiedzi:

11

Możliwe jest zastąpienie domyślnej orientacji ekranu poprzez wyłączenie obrotu akcelerometru i ustawienie obrotu użytkownika w bazie danych ustawień systemu. Aby to zrobić, należy zrootować telefon / tablet. Zmiana zostanie zastosowana po ponownym uruchomieniu telefonu / tabletu.

Na konsoli:

su
sqlite3 /data/data/com.android.providers.settings/databases/settings.db
insert into system (name,value) values('accelerometer_rotation',0);
insert into system (name,value) values('user_rotation',1);
.exit
  • user_rotation 0 -> ROTATION_0
  • user_rotation 1 -> ROTATION_180
  • user_rotation 2 -> ROTATION_270
  • user_rotation 3 -> ROTATION_90

Aby uzyskać więcej informacji, zobacz http://developer.android.com/reference/android/provider/Settings.System.html#USER_ROTATION

Jakub Czaplicki
źródło
1
Zamiast rootować telefon / tablet, możesz po prostu napisać aplikację, która na stałe zmieni te ustawienia. Dodaj <uses-permission android:name="android.permission.WRITE_SETTINGS" />do manifestu, aby dać mu wymagane uprawnienia, a następnie uruchom kod, Settings.System.putInt(this.contentResolver, Settings.System.ACCELEROMETER_ROTATION, 0);aby wyłączyć automatyczne obracanie i Settings.System.putInt(this.contentResolver, Settings.System.USER_ROTATION, Surface.ROTATION_0);ustawić nowy domyślny obrót ekranu telefonu.
Sam
can't find sqlite3, mam pomysł ?
Muhammed Refaat
@Sam woooow twoja droga jest po prostu niesamowita i całkowicie ze mną działała
Muhammed Refaat
1
@MuhammedRefaat, właściwie od tego czasu odkryłem wadę w tym podejściu: włączanie i wyłączanie ustawienia automatycznego obracania za pomocą interfejsu ustawień telefonu faktycznie resetuje USER_ROTATIONwartość.
Sam
@Sam tak, zgadza się i naprawdę świetna wskazówka
Muhammed Refaat
1

Możesz użyć niestandardowego programu uruchamiającego dom, takiego jak ADW -

Przejdź do ADWSettings> Ustawienia interfejsu użytkownika> Preferencje ekranu> Orientacja ekranu głównego, co pozwala określić, którą orientację chcesz wybrać.

Poza tym nie jestem pewien, czy to możliwe

Jedyną inną rzeczą może być niestandardowa pamięć ROM

admintech
źródło
2
która określa orientację początkową programu uruchamiającego. Kiedy uruchamiam aplikację, przechodzi ona w tryb krajobrazu
fostandy
1

auto-rotateUstawienie jest tak, że automatyczny. Po wyłączeniu urządzenie nie zawsze używa orientacji pojedynczego ekranu, ale używa dowolnej orientacji aktywnej podczas wchodzenia do aplikacji, dopóki ta aplikacja nie zostanie zamknięta. Przynajmniej jest to banalne dla telefonów, mam niewielkie doświadczenie z tabletami, ale spodziewam się, że będzie tak samo. Jeśli tak, upewnij się, że tablet jest w pozycji pionowej podczas uruchamiania aplikacji, a będziesz dobry.

jlehenbauer
źródło
w moim przypadku tak nie jest. Jeśli włączę auto-rotate, ustaw go tak, aby był w trybie pionowym, a następnie wejdź do aplikacji, a następnie wyłącz auto-rotate, mój tablet powróci do poziomej.
fostandy
co jeśli wyłączysz auto-rotate, trzymasz tablet poziomo, a następnie uruchom aplikację?
jlehenbauer
następnie mój program uruchamiający orientuje się w trybie poziomym, a aplikacja uruchamia się również w trybie poziomym
fostandy
co się stanie, jeśli zrobisz to samo, ale zaczniesz pionowo, w trybie portretowym? jak reaguje program uruchamiający i aplikacja?
jlehenbauer
Nie mogę - po wyłączeniu auto-rotatetablet przechodzi w tryb poziomy. Aby uruchomić aplikacje w trybie portretu, muszę włączyć automatyczne obracanie (patrz mój pierwszy komentarz)
fostandy 30.06.11
0

Tryb boczny

Napisałem aplikację, która pozwala korzystać z automatycznego obracania, nawet gdy leżysz na boku. Możesz go pobrać ze sklepu Play tutaj .

Sam
źródło