2016-09-30 7 views
7

Od czasu ogłoszenia przez Google, że Chromebook obsługuje również "Aplikację na Androida", chciałem też wesprzeć moją aplikację na Chromebooku, chociaż działa dobrze z kilkoma wyjątek, który muszę naprawić.Jak wykrywać programowo, czy "aplikacja na Androida" jest uruchomiona w książce Chrome lub na telefonie z Androidem

Chcę napisać kod w taki sposób, że będzie on wykonany tylko dla Chromebooka i nie zostanie wykonany dla telefonów z systemem Android i tabletu.

Mam sprawdzanie dokumentacji Chromebooków w witrynie dla programistów Androida. Nie otrzymałem takiego interfejsu API, który informuje, że aplikacja działa w środowisku Chromebook.


Sugestia od ARC Beta documentation nie działa:

Jeśli chcesz sprawdzić, czy aplikacja jest uruchomiona w systemie operacyjnym Chrome, poszukaj chromu jako android.os.Build.BRAND i android.os.Build.MANUFACTURER.

Zarówno zwrot google na Chromebooku ASUS.

+0

Gotowe; widocznie już jest tag. Usunąłem odpowiedź i zredagowałem to, co zostało tam wypróbowane na pytanie. Powodzenia. – Xan

Odpowiedz

7

końcu wymyślić sposób, aby wiedzieć, czy w aplikacji uruchomiony w ARC:

context.getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); 
+0

Czy ktoś używający Chromebooka może to potwierdzić? Czy na pewno ostateczna natywna integracja z aplikacji na Androida do Chromebooka będzie korzystać z ARC w ten sam sposób? – TSGames

+1

@TSGames Tak, potwierdziłem to i działa zgodnie z oczekiwaniami. Użyte urządzenie: Chromebook Google Pixel – dex

+0

Wielkie dzięki! Awansowany :) – TSGames

0

Inną metodą Google uses in their own code jest sprawdzenie, czy Build.DEVICE kończy „_cheets”. Nie wiem, czy nazwy urządzeń końcowych, takie jak ta, są jakimiś długoterminowymi strategiami lub szybkimi obejściami, ale warto też spojrzeć poza proponowane rozwiązanie dex.

FWIW, ponieważ metoda ARCWelder jest przestarzała i nie ma oficjalnej dokumentacji na ten temat (jeszcze), mam również started a discussion na forach XDA tutaj, aby ludzie mogli omówić, co działa/nie działa na różnych urządzeniach.

0

Z najnowszego SDK można zrobić

PackageManager pm = context.getPackageManager(); 
if (pm.hasSystemFeature(PackageManager.FEATURE_PC)) 
    // it's a chromebook 

Dla starszych urządzeń (i jak na razie, wszystko to "stary", ARC oparte wierzę), the official way to zrobić:

if (Build.BRAND != null && Build.BRAND.equals("chromium") && Build.MANUFACTURER.equals("chromium")) 
    // it's a chromebook 
+0

"Oficjalny" sposób jest nieaktualny. Najnowszy Pixelbook np. Marka to "google" – SILINIK

+0

@SILINIK czy "FEATURE_PC" działa na twoim urządzeniu? – Gabor

Powiązane problemy