2013-05-03 63 views
4

我正在研究我的应用程序的一个特殊版本,它应该在Bluestacks中运行。这是一个允许在计算机上运行Android应用程序的Windows/Mac应用程序。如何知道我的应用程序是否在Bluestacks上运行?

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

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

有人知道一个明确的方式来知道应用程序是否在Bluestacks上运行?

我知道这是一个相当本地化的问题,但如果我对如何看待或尝试什么有一些想法,那就没问题了。

回答

1

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

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

+0

这是假的! – lxknvlk 2016-10-13 10:39:53

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

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

0

这将是独一无二的。

Bluestack中没有蓝牙设备。

因此,请尝试获取Bluestack或任何仿真器上始终为“空”的蓝牙地址字符串。确保您在项目清单中添加了蓝牙许可。

BluetoothAdapter m_BluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
String m_bluetoothAdd = m_BluetoothAdapter.getAddress(); 
相关问题