如何检测Android应用程序何时在模拟器中运行?

我希望我的代码在模拟器上运行时的运行方式与在设备上运行时稍有不同。 ( 例如 ,使用10.0.2.2而不是公开的URL来自动运行开发服务器。)检测Android应用程序何时在模拟器中运行的最佳方法是什么?


一个常见的例子是Build.FINGERPRINT.contains("generic")


这个解决方案如何:

public static boolean isEmulator() {
    return Build.FINGERPRINT.startsWith("generic")
            || Build.FINGERPRINT.startsWith("unknown")
            || Build.MODEL.contains("google_sdk")
            || Build.MODEL.contains("Emulator")
            || Build.MODEL.contains("Android SDK built for x86")
            || Build.MANUFACTURER.contains("Genymotion")
            || (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
            || "google_sdk".equals(Build.PRODUCT);
}

那么Android ID不适合我,我目前正在使用:

"google_sdk".equals( Build.PRODUCT );
链接地址: http://www.djcxy.com/p/90533.html

上一篇: How can I detect when an Android application is running in the emulator?

下一篇: Error in launching AVD with AMD processor