我是新创建类似的东西
但是我想阻止人们将我的应用安装在模拟器上,尤其是在Bluestack上。
当我用Google搜索它时,我发现了this和this,但它们都对我失败了,并且仍然安装在bluestack上。
也尝试使用this lib,但失败了
所以我希望有人能帮助我解决这个问题
答案 0 :(得分:1)
这是我的主意,首先为什么不尝试检查SIM卡号码并拒绝没有SIM卡的人,
在Java上:
TelephonyManager telemamanger = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String getSimSerialNumber = telemamanger.getSimSerialNumber();
String getSimNumber = telemamanger.getLine1Number();
在Manifest.xml
中启用权限
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
如果由于仿真器上的用户修改导致该步骤失败,请尝试检查应用程序是否在仿真器上运行,
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);
}
如果isEmulator() == true
,则应关闭该应用程序。
希望这会有所帮助!