判断android应用是否运行在模拟器中
有下面几种方法:
-
依赖
android.os.Build
中的信息。如果使用普通的android sdk,那么 Build.PRODUCT == "sdk";如果使用了 google api sdk,那么 Build.PRODUCT == 'google_sdk' -
模拟器中 Settings.Secure.ANDROID_ID == "", 但在android 2.2 中有个bug,所有设备的 android_id 都是 9774d56d682e549c
综合两种方式,代码如下:
public boolean isEmulator() {
String android_id = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);
Log.d("ares","ANDROID_ID: "+android_id);
Log.d("ares","Build.PRODUCT: "+Build.PRODUCT);
boolean emulator = TextUtils.isEmpty(android_id) || "google_sdk".equals( Build.PRODUCT ) || "sdk".equals(Build.PRODUCT);
return emulator;
}
Last modified on 2012-10-02