确定仿真器设备是否正在使用中

时间:2011-10-31 15:00:12

标签: android android-emulator

有谁知道方法hasClients在android sdk中做了什么?

boolean com.android.ddmlib.IDevice.hasClients()

它看起来不像它的记录。

我试图找到一种方法来查看是否正在使用模拟器。有什么好办法吗?

for(int i =0; i < devices.length; i++){

    if(!devices[i].hasClients()){

        monkeyDevice = devices[i];

    }

}

当我说使用时,我的意思是说当前设备上正在运行一个应用程序,或者它是否接收到任何命令。

更新

我应该提到我想从我的应用程序中测试外部这些条件。我有一个单独的类在应用程序外部运行,在可用的模拟器中启动应用程序。我希望这个猴子类知道现有的模拟器是否已经用于测试。

1 个答案:

答案 0 :(得分:0)

看看这个问题,看看你是否在模拟器中运行:
How can I detect when an Android application is running in the emulator?

在与猴子相关的问题上,您可能希望查看Activity.isUserAMonkey()方法(因为API级别8,OS 2.2)。 Google DeviceAdminSample code给出了简要说明:

/**
 * If the "user" is a monkey, post an alert and notify the caller.  This prevents automated
 * test frameworks from stumbling into annoying or dangerous operations.
 */
private static boolean alertIfMonkey(Context context, int stringId) {
    if (ActivityManager.isUserAMonkey()) {
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setMessage(stringId);
        builder.setPositiveButton(R.string.monkey_ok, null);
        builder.show();
        return true;
    } else {
        return false;
    }
}