【问题标题】:Restricting running Android application on Android mobile emulator限制在 Android 移动模拟器上运行 Android 应用程序
【发布时间】:2019-11-02 20:34:24
【问题描述】:

我有一个应用程序,我只想在物理设备上运行它,这意味着没有像 Android 模拟器这样的虚拟设备。如果用户尝试在模拟器上安装或运行它,它必须退出应用程序。请提供相同的限制逻辑。 TIA

【问题讨论】:

    标签: java android emulation


    【解决方案1】:

    您可以使用此方法检查应用程序是否在android模拟器上运行。然后如果它在 android 模拟器上运行,您可以决定完成活动(或任何您决定)

    fun isRunningOnEmulator(): Boolean {
        var result = (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"))
        if (result)
          return true
    
        result = result or (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
    
        if (result)
          return true
    
        result = result or ("google_sdk" == Build.PRODUCT)
    
        return result
    }
    

    如果这不起作用,你可能想试试这个库:

    android-emulator-detector

    如果这个库是旧的,你可能想要检查这个也检测 nox 模拟器的 fork

    android-emulator-detector forked by daiwei92

    【讨论】:

    • 是的...好的,但是有一个问题,当用户在非指纹物理设备上运行它时,它正在退出。那些移动设备的解决方案是什么。 TIA
    • 你检查过这个library
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    相关资源
    最近更新 更多