Skocz do zawartości
luckynyc

W jaki sposób aplikacja wybiera interfejs dla danego urządzenia

    Rekomendowane odpowiedzi

    Witam

    w przypadku ręcznego instalowania aplikacji z plików APK, które nie są przeznaczone dla Android TV,  na jakiej zasadzie Android TV wybiera jaki interfejs wyświetlić (ze smartfona czy tabletu), i czy da się wymusić aby wyświetlał inny?

    Przez chwilę miałem TV BOX MXQ PRO z Androidem 6 (tradycyjnym - nie TV). Jak instalowałem tam aplikację Eska Rock to pojawiała się ona z poziomym interfejsem - taki jak jest wyświetlany na tablecie w układzie poziomym. Aplikacja ta nie jest kompatybilna z Android TV więc zainstalowałem ją ręcznie z pliku APK. Wszystko działa dobrze, nawet jest obsługa pilota, a jedyny problem to taki, że interfejs jest taki jak ze smartfona i obrócony bokiem. Programy do blokowania obrotu nie działają na tę aplikację - pewnie dlatego, że na smartfonie też się jej nie da obrócić.

    Skoro aplikacja nie jest kompatybilna z Android TV, to też na pewno nie ma przypisanego interfejsu dla tego sytemu. Czy ktoś wie jak w takim wypadku aplikacja dobiera interfejs? 

    Czy da się wymusić jakoś na aplikacji aby na Android TV wyświetlała interfejs z tabletu a nie ze smartfona? 

    Z góry dziękuję za pomoc.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Witam

    jeśli to offtopic to przepraszam, ale wydaje mi się, że ten dział będzie najodpowiedniejszy.

    Nie znam się na programowaniu, ale potrzebuje ogólnej informacji.

    Jeśli na instaluję z pliku APK aplikację a urządzeniu z Androidem, z którym ta aplikacja nie jest kompatybilna, to w jaki sposób urządzenie wybiera, że ma wyświetlić określony interfejs np. że wyświetla interfejs dla smartfona a nie tabletu.

    Przecież skoro aplikacja nie jest kompatybilna z urządzeniem to nie ma zaprogramowanego dla niego określonego interfejsu. 

    Czy da się wymusić aby na takim niezgodnym urządzeniu ta konkretna aplikacja wyświetlała się jak na tablecie a nie jak na smartfonie? 

     

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Ogólnie chodzi o DPI i rozdzielczość ekranu. Dla różnych rozdzielczości tworzy się osobne widoki. Aplikacja podczas uruchamiania ma dostęp do informacji o wielkości ekranu i wie który widok załadować. Z dokumentacji:

    320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
    480dp: a large phone screen ~5" (480x800 mdpi).
    600dp: a 7 tablet (600x1024 mdpi).
     720dp: a 10 tablet (720x1280 mdpi, 800x1280 mdpi, etc).

    Aby zasymulować tablet możesz spróbować zmienić dpi w swoim telefonie. Jeżeli posiadasz androida powyżej 7.0 nie będziesz musiał nawet rootować telefonu.
    Najpierw musisz stać się programistą :P W tym celu:
    Wchodzisz w Ustawienia -> System -> Informacje o telefonie, potem 7 razy musisz szybko kliknąć w Numer kompilacji.

    W ustawieniach pojawi Ci się nowe menu: Opcje programisty. Szukasz w nim "Najmniejsza szerokość" i zmieniasz na większą (Zapamiętaj jaka była domyślna!). Dla tabletów zgodnie z dokumentacja będzie to minimum 600dp.

    Przy odrobinie szczęścia może uda Ci się odpalić tą apkę ;)
     

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Dziękuję za odpowiedź.

    Najbardziej podoba mi się, że zostaną programistą ;) 

    Sprawa dotyczy Android TV Oreo czyli 8, i jest o tyle dziwna, że na urządzeniu z Android 6 (zwykłym - nie TV) podłączonym do TV pojawia się interfejs z tabletu, a z na Android TV Oreo podłączonym do tego samego TV pojawia się interfejs ze smartfona.

    Ciekawe, czy w Android TV też się da ten parametr zmienić, jeśli tak to sprawa będzie załatwiona. 

    dodana zawartość

    Android 8 na smartfonie ma ten parametr, ale niestety Android TV Oreo akurat tego jednego nie ma :(

    więc albo jest ukryty gdzieś indziej, albo wobec braku dla aplikacji niekompatybilnych przyjmuje wartość najmniejszą

    Bez roota nie da się dopisać tej wartości?

    dodana zawartość

    .

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    mmaciejow

    Jeżeli nie ma odpowiedniego layouta to Android sam "próbuje dopasować" elementy na ekranie. Dla TV zawsze wybierze ten największy layout ponieważ najbardziej mu pasuje do wielkości. 

    Są aplikacje, które wspierają Android TV i tam są porobione layouty dla dużych ekranów. A jeśli apka nie ma wsparcia to zachowuje się taka jak napisałem wyżej. 

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x