Vorrei accertarmi in fase di esecuzione all'interno di un'app Android se è in esecuzione nell'emulatore Android BlueStacks. Questo è così posso modificare il modo in cui l'app viene eseguita durante l'esecuzione all'interno di BlueStacks.Modo affidabile per rilevare se un'applicazione Android è in esecuzione in "BlueStacks"
BlueStacks non supporta il multi-tocco, quindi voglio implementare un'alternativa alla funzionalità pinch-to-zoom standard della mia app attuale.
E.g.
If (appIsRunningInBlueStacks){
mySurfaceView.enableMultiTouchAlternatives();
} else{
mySurfaceView.enableMultiTouchFeatures();
}
Qual è un modo affidabile per determinare il valore di appIsRunningInBlueStacks?
EDIT Sintesi delle risposte ai commenti di domanda:
Ben, Taras, grazie per i suggerimenti. I valori Build.MODEL ecc per BlueStacks sono:
Modello: "GT-I9100"
Produttore: "samsung"
dispositivo: "GT-I9100"
prodotto: "GT-I9100"
Questo è lo stesso modello num come il Samsung Galaxy SII, quindi non sarebbe ideale utilizzarlo per paura di trattare tutti gli utenti con SII come quelli su BlueStacks.
CommonsWare, l'app continua a essere eseguita in BlueStacks anche con la funzione di utilizzo < per multitouch nel manifest. Infatti (rispondendo anche alla domanda di iagreen) ...
packageManager.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT);
... restituisce vero! Questo è normale, suppongo che l'emulatore sia convinto che sia un Samsung Galaxy SII!
Pertanto, siamo ancora senza un modo per rilevare in modo affidabile se un'applicazione è in esecuzione su BlueStacks senza lanciare tutti gli utenti Samsung Galaxy SII nello stesso bucket. Altre idee?
Hai provato a sbirciare attraverso 'android.os.Build'? (http://developer.android.com/reference/android/os/Build.html) –
Sì, prova a verificare le costanti di Android.os.Build MODELLO, PRODUTTORE, DISPOSITIVO, PRODOTTO in fase di esecuzione e verificarne i valori, piuttosto che controllarne uno del parametro che funziona meglio ed è unico in fase di runtime. –
Avete gli elementi appropriati '' per annunciare che avete bisogno di multitouch? O BlueStacks lo ignora? –
CommonsWare