Chciałbym sprawdzić podczas uruchamiania w aplikacji na Androida, czy działa ona w emulatorze Android BlueStacks. Dzięki temu mogę zmodyfikować sposób działania aplikacji podczas pracy w BlueStacks.Niezawodny sposób sprawdzania, czy aplikacja na Androida działa w "BlueStacks"
BlueStacks nie obsługuje funkcji multi-touch, więc chcę zaimplementować alternatywę dla standardowej funkcji pinch-to-zoom, którą ma moja obecna aplikacja.
E.g.
If (appIsRunningInBlueStacks){
mySurfaceView.enableMultiTouchAlternatives();
} else{
mySurfaceView.enableMultiTouchFeatures();
}
Co to jest niezawodny sposób na ustalenie wartości AppIsRunningInBlueStacks?
EDIT Podsumowanie odpowiedzi na komentarze na pytanie:
Ben, Taras, dzięki za sugestie. W Build.MODEL itp wartości BlueStacks to:
Model: "GT-I9100"
Producent: "samsung"
Urządzenie: "GT-I9100"
produktu: "GT-I9100"
jest to ten sam model num jako Samsung Galaxy SII, więc nie byłoby idealnym rozwiązaniem do korzystania z tego w obawie, że wszyscy użytkownicy będą traktowani tak samo jak użytkownicy BlueStacks.
Ogólnie, aplikacja nadal działa w BlueStacks nawet przy użyciu funkcji < dla funkcji multitouch w manifeście. W rzeczywistości (także odpowiadając na pytanie iagreen) ...
packageManager.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT);
... zwraca prawdę! Można się tego spodziewać, jak przypuszczam, ponieważ emulator jest przekonany, że jest to Samsung Galaxy SII!
W związku z tym wciąż nie mamy możliwości niezawodnego wykrycia, czy aplikacja działa na BlueStacks, nie rzucając jednocześnie wszystkich użytkowników Samsung Galaxy SII do tego samego zasobnika. Jakieś inne pomysły?
Czy próbowałeś zerknąć przez 'android.os.Build'? (http://developer.android.com/reference/android/os/Build.html) –
Tak, spróbuj sprawdzić Android.os.Build MODEL, PRODUCENTA, URZĄDZENIE, stałe PRODUKTU w czasie wykonywania i sprawdzenie ich wartości, niż po prostu sprawdź jeden parametru, który działa najlepiej i jest unikalny w czasie wykonywania. –
Czy masz odpowiednie elementy '' do anonsowania, że potrzebujesz multitouch? A może BlueStacks to ignoruje? –
CommonsWare