BlueStacks Android エミュレーター内で実行されているかどうか、Android アプリ内で実行時に確認したいと思います。これは、BlueStacks 内でアプリを実行するときのアプリの実行方法を変更できるようにするためです。
BlueStacks はマルチタッチをサポートしていないため、現在のアプリにある標準のピンチ ツー ズーム機能に代わるものを実装したいと考えています。
例えば
If (appIsRunningInBlueStacks){
mySurfaceView.enableMultiTouchAlternatives();
} else{
mySurfaceView.enableMultiTouchFeatures();
}
appIsRunningInBlueStacks の値を確認する信頼できる方法は何ですか?
編集 質問に対するコメントへの回答の要約:
ベン、タラス、提案をありがとう。BlueStacks の Build.MODEL などの値は次のとおりです。
型式:「GT-I9100」
メーカー:「サムスン」
デバイス:「GT-I9100」
商品名:「GT-I9100」
これは Samsung Galaxy SII と同じモデル番号であるため、SII を使用するすべてのユーザーを BlueStacks と同じように扱うことを恐れて、これを使用することは理想的ではありません。
CommonsWare では、マニフェストにマルチタッチ用の < uses-feature> があっても、アプリは BlueStacks で引き続き実行されます。実際(iagreenの質問にも答えています)...
packageManager.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT);
... true を返します! エミュレーターが Samsung Galaxy SII であると確信しているため、これは当然のことです。
したがって、すべての Samsung Galaxy SII ユーザーを同じバケットに入れることなく、アプリが BlueStacks で実行されているかどうかを確実に検出する方法はまだありません。他のアイデアはありますか?