我正在处理我的应用程序的特殊版本,它应该在Bluestacks中运行。这是一个允许在计算机上运行Android应用程序的Windows / mac应用程序。
我想在应用程序在Bluestacks中运行时实现特殊行为。没有什么复杂的,可能会显示一个对话框或禁用某些按钮。
但为了这个目的,我需要知道该应用程序是否在Bluestacks设备上运行。我检查了设备型号(Build.MODEL
)和制造商(Build.MANUFACTURER
),但我发现该设备是Samsung GT i900。
有人知道一种明确的方式来了解应用是否在Bluestacks上运行吗?
我知道这是一个非常本地化的问题,但如果我得到一些关于在哪里查看或尝试什么的想法,那就没问题了。
答案 0 :(得分:5)
试试这个:
/**
* Returns true if device is Android port to x86
*/
public static boolean isx86Port()
{
String kernelVersion = System.getProperty("os.version");
if(kernelVersion != null && kernelVersion.contains("x86")) // for BlueStacks returns "2.6.38-android-x86+"
return true;
return false;
}
答案 1 :(得分:1)
最后,我决定使用Android库为Bluestacks构建一个新的应用程序。这允许我为bluestacks app添加特殊行为。
我尝试使用Build
类获取所有信息,但它返回与三星Galaxy GT i9000设备相同的信息,因此无法知道该设备是在bluestack中运行。
答案 2 :(得分:1)
尝试以下代码:
File test = new File("/data/Bluestacks.prop");
boolean isRunningInBluestacks = test.exists();
答案 3 :(得分:0)
这将是独一无二的。
Bluestack中没有蓝牙设备。
因此,尝试在Bluestack或Any模拟器上获取始终为“null”的蓝牙地址字符串。确保在项目清单上添加蓝牙权限。
BluetoothAdapter m_BluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
String m_bluetoothAdd = m_BluetoothAdapter.getAddress();