如何知道我的应用程序是否在Bluestacks上运行?

时间:2013-05-03 07:48:19

标签: android bluestacks

我正在处理我的应用程序的特殊版本,它应该在Bluestacks中运行。这是一个允许在计算机上运行Android应用程序的Windows / mac应用程序。

我想在应用程序在Bluestacks中运行时实现特殊行为。没有什么复杂的,可能会显示一个对话框或禁用某些按钮。

但为了这个目的,我需要知道该应用程序是否在Bluestacks设备上运行。我检查了设备型号(Build.MODEL)和制造商(Build.MANUFACTURER),但我发现该设备是Samsung GT i900。

有人知道一种明确的方式来了解应用是否在Bluestacks上运行吗?

我知道这是一个非常本地化的问题,但如果我得到一些关于在哪里查看或尝试什么的想法,那就没问题了。

4 个答案:

答案 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();