如何确定APK是在模拟器上运行还是实际设备上?

3

我希望阻止用户在模拟器上进行注册,那么如何确定apk正在运行的是模拟器还是真实设备?谢谢!


也许可以检查Google Play是否已安装?在模拟器中安装Google Play非常困难。 - Rotary Heart
1
尚未尝试过任何解决方案,但请从这里开始(https://dev59.com/k3E85IYBdhLWcg3wYigB)。请注意,没有一种方法是完美的。 - A--C
1
也许这可以帮助你:https://dev59.com/k3E85IYBdhLWcg3wYigB - Gabriel
通常,Google 使用的系统属性是“ro.kernel.qemu”。如果返回值为“1”,则表示您正在运行模拟器。 - EyalBellisha
请查看此链接:https://dev59.com/k3E85IYBdhLWcg3wYigB#21505193 - android developer
2个回答

0

您可以检查硬编码到模拟器中的设备ID。 检查方法如下:

TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
Log.e("id", telephonyManager.getDeviceId());

结果应该是这样的:

03-12 09:50:08.043: E/id(447): 000000000000000

获得许可

  <uses-permission android:name="android.permission.READ_PHONE_STATE" />

0

试试这个

if (Build.BRAND.equalsIgnoreCase("generic")) {
                 Toast.makeText(getBaseContext(), "YES, I am an emulator", Toast.LENGTH_LONG).show();
           } else {
               Toast.makeText(getBaseContext(), "NO, I am NOT an emulator", Toast.LENGTH_LONG).show();
              }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接