Pages

Thursday, March 31, 2016

android improved emulator detection

Detects droid4x, genymotion and the default android studio emulator.

   public static boolean deviceIsEmulator() {  
     int rating = 0;  
     if (Build.PRODUCT.contains("sdk") ||  
         Build.PRODUCT.contains("google_sdk") ||  
         Build.PRODUCT.contains("Droid4X") ||  
         Build.PRODUCT.contains("sdk_x86") ||  
         Build.PRODUCT.contains("sdk_google") ||  
         Build.PRODUCT.contains("vbox86p")) {  
       rating++;  
     }  
     if (Build.MANUFACTURER.equals("unknown") ||  
         Build.MANUFACTURER.equals("Genymotion")) {  
       rating++;  
     }  
     if (Build.BRAND.equals("generic") ||  
         Build.BRAND.equals("generic_x86")) {  
       rating++;  
     }  
     if (Build.DEVICE.contains("generic") ||  
         Build.DEVICE.contains("generic_x86") ||  
         Build.DEVICE.contains("Droid4X") ||  
         Build.DEVICE.contains("generic_x86_64") ||  
         Build.DEVICE.contains("vbox86p")) {  
       rating++;  
     }  
     if (Build.MODEL.equals("sdk") ||  
         Build.MODEL.equals("google_sdk") ||  
         Build.MODEL.contains("Droid4X") ||  
         Build.MODEL.equals("Android SDK built for x86_64") ||  
         Build.MODEL.equals("Android SDK built for x86")) {  
       rating++;  
     }  
     if (Build.HARDWARE.equals("goldfish") ||  
         Build.HARDWARE.equals("vbox86")) {  
       rating++;  
     }  
     if (Build.FINGERPRINT.contains("generic/sdk/generic") ||  
         Build.FINGERPRINT.contains("generic_x86/sdk_x86/generic_x86") ||  
         Build.FINGERPRINT.contains("generic_x86_64") ||  
         Build.FINGERPRINT.contains("generic/google_sdk/generic") ||  
         Build.FINGERPRINT.contains("vbox86p") ||  
         Build.FINGERPRINT.contains("generic/vbox86p/vbox86p")) {  
       rating++;  
     }  
     return rating > 4;  
   }  

No comments:

Post a Comment