gpt4 book ai didi

android - 如何阻止Android应用程序在模拟器上打开?

转载 作者:行者123 更新时间:2023-12-05 06:24:05 25 4
gpt4 key购买 nike

我有一个 Android 应用程序,我有一些私有(private)信息,当人们在模拟器上运行我的 Android 应用程序时,他们可以看到这些信息。有没有人有关于如何阻止模拟器访问我的 APK 的解决方案?

最佳答案

您可以创建扩展 android.app.Application 的类.在该类中,您可以抛出运行时异常以使应用程序崩溃,if app is running on emulator .

请注意,没有万无一失的解决方案,因为任何人都可以使用免费工具反编译您的应用并轻松删除这些检查。

import android.app.Application;
import android.os.Build;

public class App extends Application {

@Override
public void onCreate() {
super.onCreate();

if (isEmulator()) throw new IllegalStateException();
}

private boolean isEmulator() {
return (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
|| Build.FINGERPRINT.startsWith("generic")
|| Build.FINGERPRINT.startsWith("unknown")
|| Build.HARDWARE.contains("goldfish")
|| Build.HARDWARE.contains("ranchu")
|| Build.MODEL.contains("google_sdk")
|| Build.MODEL.contains("Emulator")
|| Build.MODEL.contains("Android SDK built for x86")
|| Build.MANUFACTURER.contains("Genymotion")
|| Build.PRODUCT.contains("sdk_google")
|| Build.PRODUCT.contains("google_sdk")
|| Build.PRODUCT.contains("sdk")
|| Build.PRODUCT.contains("sdk_x86")
|| Build.PRODUCT.contains("vbox86p")
|| Build.PRODUCT.contains("emulator")
|| Build.PRODUCT.contains("simulator");
}
}

此外,不要忘记将该类添加到 <application>你的标签 AndroidManifest.xml :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.natigbabayev.stackoverflow">

<application
...
android:name=".App">
...
</application>

</manifest>

希望我的回答对您有所帮助。

关于android - 如何阻止Android应用程序在模拟器上打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57958713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com