Jak działa Google Play, jeśli aplikacja jest kompatybilna z moim urządzeniem?

17

Mam jeden „ogólny” tablet z Androidem i często, kiedy przychodzę instalować i aplikować, Google Play mówi, że jest niezgodny z moim urządzeniem. Dzieje się tak nawet w popularnych aplikacjach, takich jak Twitter, Instagram, Evernote, Foursquare, a nawet Mapy Google!

Wiem, że to działa, ponieważ jeśli skopiuję plik APK z mojego telefonu Motorola na ten tablet i zainstaluję go ręcznie, będzie działał dobrze (przynajmniej Instagram i Twitter).

Nie staram się, aby Instagram działał na moim tablecie. Próbuję znaleźć sposób na zainstalowanie aplikacji ze Sklepu Play.

Google Play twierdzi, że aplikacje są niezgodne

W jaki sposób i gdzie Google Play sprawdza zgodność na moim urządzeniu? Podejrzewam, że kontrola jakoś się nie powiedzie. Chcę mieć możliwość instalowania aplikacji, które będą działać na moim urządzeniu, i uniemożliwić Google Play.

Ten brazylijski facet
źródło
2
Aplikacje nie są blokowane z powodu kraju mojego urządzenia, wiem o tym, ponieważ gdy jest blokowane z powodu kraju, wiadomość jest inna i.imgur.com/B69bn.png i nawet nie wyświetla się w Google Play, Muszę otworzyć stronę na pulpicie.
Ten Brazylijczyk
1
Zarówno mój telefon Motorola Defy, jak i tablet Gerenic Genesis mają system Android 4 (Cyanogenmod 9 w przypadku mojego telefonu, nieznany ROM w przypadku tabletu).
Ten Brazylijczyk

Odpowiedzi:

10

Kiedy programiści tworzą aplikacje, muszą określić wszelkie wymagania sprzętowe / programowe w pliku zwanym androidmanifest.xmlplikiem.

Mogą to być wymagania sprzętowe lub programowe, na przykład czy aplikacja wymaga GPS lub funkcji telefonicznych - lub jeśli będzie działać tylko na określonej wersji Androida.

Gdy korzystasz z Google Play, wysyła on „funkcje” urządzenia na serwer, a następnie odpowiednio filtruje aplikacje.

Najbardziej prawdopodobnym powodem, dla którego Google Play uważa go za niezgodny, jest to, że wymaga określonej rozdzielczości ekranu - a może domyślnych ustawień trybu pionowego / poziomego.

Niektóre tablety mają niską rozdzielczość, a także informują Google Play, że nie mogą przejść do trybu pionowego.

Może być również tak, że Twój tablet jest ogólny, że nie ma wymaganego GPS lub czujników, których najbardziej różnorodny plik mówi, że potrzebuje, a rynek powstrzymuje Cię od instalacji z tego powodu.

Dowiem się, czego potrzebuje aplikacja na Instagramie (przejrzyj jej manifest), i wyedytuję dla ciebie tę odpowiedź.

EDYTOWAĆ:

Według manifestu na Instagramie jedynym „wymaganym” przedmiotem jest wersja glEs - minimum 131072. Może to być również spowodowane ustawieniem kraju / operatora operatora.

Twitter wymaga co najmniej Androida 2.1, a także może potrzebować wibratora, ponieważ korzysta z uprawnień do wibracji.

Liam W.
źródło
1
Nie, to nie z powodu kraju mojego urządzenia ani operatora. Nie ma operatora (brak możliwości GSM lub telefonu), a gdy jakaś aplikacja jest blokowana z powodu kraju, wyświetlany jest inny komunikat - i.imgur.com/B69bn.png
Ten Brazylijczyk
@ ruda.almeida Właśnie obejmując wszystkie granice ...
Liam W
Nie ma problemu, po prostu podałem więcej danych, dziękuję za wasze wysiłki!
Ten Brazylijczyk
1
@ ruda.almeida Jeśli aplikacja poprosi o pozwolenie na telefonię (do wysyłania / odbierania SMS-ów), będzie również wymagać sprzętu telefonicznego.
Liam W
0

Wiem, że nie uważasz, że to z powodu twojego kraju, JEDNAK zauważyłem, że twój zrzut ekranu był w języku innym niż angielski. Jestem programistą Androida, więc znam trochę lokalizację . Zasadniczo aplikacje mają pewność, localesktóre „reprezentuje kombinację język / kraj / wariant. Ustawienia regionalne służą do zmiany sposobu prezentacji informacji, takich jak liczby lub daty, zgodnie z konwencjami w regionie, który opisują” (zobacz to na stronie programistycznej Androida ). To przykuło moją uwagę:

Kod Java aplikacji odnosi się tylko do dwóch ciągów, text_a i text_b. Ta aplikacja zawiera zlokalizowany plik zasobów (res / values-en / strings.xml), który definiuje text_a i text_b w języku angielskim. Ta aplikacja zawiera również domyślny plik zasobów (res / wartości / ciągi.xml), który zawiera definicję text_a, ale nie text_b:

Ta aplikacja może się kompilować bez problemu. IDE, takie jak Eclipse, nie podświetli żadnych błędów, jeśli brakuje zasobu. Gdy ta aplikacja zostanie uruchomiona na urządzeniu z ustawieniami narodowymi ustawionymi na angielski, aplikacja może działać bez problemu, ponieważ res / values-en / strings.xml zawiera oba niezbędne ciągi tekstowe. Jednak użytkownik zobaczy komunikat o błędzie i przycisk Wymuś zamknięcie po uruchomieniu tej aplikacji na urządzeniu ustawionym na język inny niż angielski. Aplikacja nie ładuje się.

Zwróć uwagę na część dotyczącą sposobu kompilacji aplikacji bez problemu, ale może również wyświetlać komunikat o błędzie i wymuszać zamknięcie, jeśli urządzenie ma ustawienia regionalne, które nie są obsługiwane przez tę aplikację. Zdaję sobie sprawę, że to nie dzieje się z Tobą, ale może odnosić się do Twojego problemu, ponieważ Google Play zobaczy, że na Twoim urządzeniu mogą być ustawione ustawienia regionalne, dla których aplikacja nie obsługuje lub ma określony zestaw zasobów. Google Play może niż ukryć tę aplikację przed urządzeniem, chociaż może działać dobrze z powodu domyślnych zasobów, które programista prawdopodobnie napisał, jednak Google Play może zdecydować, że nie chce ryzykować gniewnego klienta z powodu problemu Force Close, więc może po prostu ukryj to przed sobą całkowicie. Ponownie, to tylko pomysł i zdaję sobie sprawę, że widzisz inne przesłanie niezgodności z twoim krajem. Mam nadzieję że to pomoże.

ninge
źródło
1
Co ciekawe, nie miałem o tym pojęcia (i podejrzewam, że kilku deweloperów też może nie wiedzieć). Jednak zarówno mój telefon, jak i tablet działają w tym samym języku. Wiem, że istnieje kilka różnych atrybutów systemu do zdefiniowania języka, kraju, ustawień regionalnych itp. Mam kilka aplikacji systemowych, które je wyświetlają, uruchomię je i dodam informacje do mojego pytania.
Ten Brazylijczyk
1
Cieszę się, że mogłem otworzyć dla ciebie nowe drzwi. Być może zechcesz sprawdzić dwie strony programistów, które podałem, ponieważ może tam pojawić się coś, co może ci pomóc.
ninge
1
Kontrole zgodności Google Play nie są oparte na ustawieniach regionalnych. Ponadto deweloper ma normalną praktykę, aby mieć zasoby jednego ustawienia narodowego (takie jak angielski) jako domyślne, więc w nieobsługiwanych ustawieniach regionalnych po prostu użyje zasobów domyślnych.
Dan Hulme