5

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

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

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

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

我知道这是一个相当本地化的问题,但是如果我对在哪里查看或尝试什么有一些想法,那就太好了。

4

4 回答 4

4

尝试这个:

/**
* 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;
}
于 2013-10-03T08:52:53.783 回答
1

试试下面的代码:
File test = new File("/data/Bluestacks.prop"); boolean isRunningInBluestacks = test.exists();

于 2015-12-08T09:35:32.580 回答
0

最后,我决定使用 Android 库为 Bluestacks 构建一个新应用程序。这允许我为 bluestacks 应用程序添加特殊行为。

我尝试使用Build该类获取所有信息,但它返回的结果与三星 Galaxy GT i9000 设备相同,因此无法知道该设备是否在 bluestacks 中运行。

于 2013-05-06T08:40:17.510 回答
0

这将是独一无二的。

Bluestack 中没有蓝牙设备。

因此,请尝试在 Bluestack 或任何模拟器上获取始终为“空”的蓝牙地址字符串。确保在项目清单上添加蓝牙权限。

BluetoothAdapter m_BluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
String m_bluetoothAdd = m_BluetoothAdapter.getAddress();
于 2016-05-14T12:09:45.043 回答