Run Android app Only on Physical Device not Emulator

后端 未结 1 1240
北海茫月
北海茫月 2021-01-25 04:01

How can I make my app run only on a physical android device, not an emulator.

When the app starts I want to check if the device is a physical d

相关标签:
1条回答
  • 2021-01-25 04:51

    In the onCreate() method of your launch activity, you can check whether the device is running on an emulator and, if it is, just call finish(). To check whether you're running on an emulator, you can use something like the following code (taken from this answer):

    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);
    }
    

    You can find lots of other suggestions on the web for detecting an emulator environment. I don't know of any that are absolutely foolproof, but the above is pretty robust.

    0 讨论(0)
提交回复
热议问题