android - 如何限制 APK 不安装在 Android 模拟器/模拟器中,而是安装在真实设备中?

标签 android android-emulator apk

希望您知道安装在 Android 设备中的应用程序可以在 Astro 文件管理器等应用程序的帮助下备份并存储为可安装文件(作为 APK 文件)。同样的apk也可以安装在android模拟器中。因此,其他人有可能很容易地挖掘已安装应用程序的文件,如数据库、共享首选项等。

有没有办法只允许在真实设备上安装而不允许在模拟器上安装???

我知道如果它是 ROOTED 设备,我们可以像在模拟器中一样访问应用程序的数据。尽管我想知道我们是否可以限制在模拟器中安装 apk。

提前致谢

最佳答案

使用这个函数:

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

因此:

if (isEmulator()) {
   // emulator
} else {
   //not emulator
}

我的建议:

尝试 this来自 github。

易于检测android模拟器

如何使用示例:

EmulatorDetector.with(this)
                .setCheckTelephony(true)
                .addPackageName("com.bluestacks")
                .setDebug(true)
                .detect(new EmulatorDetector.OnEmulatorDetectorListener() {
                    @Override
                    public void onResult(boolean isEmulator) {

                    }
                });

关于android - 如何限制 APK 不安装在 Android 模拟器/模拟器中,而是安装在真实设备中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16213326/

相关文章:

java - 以编程方式在Android上绘制虚线

android - 使用位置预配置 Android 模拟器?

android - 需要安卓 : Varies with device (Multi APK)

android - 无法在 Android 模拟器上运行 AIR .apk 文件

android - 'gradlew' 不是内部或外部命令、可运行程序或批处理文件

java - setOnTouchListener 和 setOnItemClickListener 不能同时工作

android - Fitness startBleScan 成功但使用 MI Band 2 停止扫描

android - React Native 监听 Websocket 发送推送通知?

android - 如何从命令行(在 Kubuntu 中)运行 Android 仪器测试?

android - 我无法在模拟器 Android 2.3.3 版本中启动新 Activity ,但 Android 4.1.2 工作正常