博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何判断Android设备是否为模拟器
阅读量:5251 次
发布时间:2019-06-14

本文共 2063 字,大约阅读时间需要 6 分钟。

 

android.os.Build.BRAND:获取设备品牌

 

如果获取的Landroid/os/Build;->BRAND的值 "generic"则为模拟器上运行。

android.os.Build.MODEL :获取手机的型号 设备名称。

如果发现Landroid/os/Build;->MODEL 为"sdk",则为模拟器上运行。

代码示例:

1     const-string v0, "phone" 2  3     invoke-virtual {p0, v0}, Lcom/xxx/LoadingActivity;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; 4  5     move-result-object v0 6  7     check-cast v0, Landroid/telephony/TelephonyManager; 8  9     invoke-virtual {v0}, Landroid/telephony/TelephonyManager;->getSubscriberId()Ljava/lang/String;10 11     sget-object v0, Landroid/os/Build;->BRAND:Ljava/lang/String;12 13     invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;14 15     move-result-object v016 17     const-string v1, "generic"18 19     invoke-virtual {v0, v1}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I20 21     move-result v022 23     const/16  v0, -124     25     if-eq v0, v2, :cond_026 27     sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;28 29     invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;30 31     move-result-object v032 33     const-string v1, "sdk"34 35     invoke-virtual {v0, v1}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I36 37     move-result v038 39     if-eq v0, v2, :cond_040 41     invoke-virtual {p0}, Lcom/xxx/LoadingActivity;->finish()V42 43     :cond_044     iget-object v0, p0, Lcom/xxx/LoadingActivity;->b:Landroid/content/SharedPreferences;45 46     invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;

 

以下信息可以被用来判断是否在模拟器上运行

模拟器输出的信息
1 C:\Users\dell>adb shell getprop 2  3 [ro.kernel.qemu]:[1] 4 [ro.hardware]:[goldfish] 5 [ro.build.tags]:[test-keys] 6 [ro.product.model]:[sdk] 7 [ro.product.brand]:[generic] 8 [ro.product.name]:[sdk] 9 [ro.product.device]:[generic]10 [ro.product.board]:[]11 [ro.product.manufacturer]:[unknown]12 [ro.board.platform]:[]13 [ro.build.product]:[generic]14 [ro.build.fingerprint]:[generic/sdk/generic:2.3.1/GSI11/93351:eng/test-keys]

 

转载于:https://www.cnblogs.com/goodhacker/p/3404398.html

你可能感兴趣的文章
现代程序设计 作业1
查看>>
在android开发中添加外挂字体
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
多线程实现资源共享的问题学习与总结
查看>>
Learning-Python【26】:反射及内置方法
查看>>
torch教程[1]用numpy实现三层全连接神经网络
查看>>
java实现哈弗曼树
查看>>
转:Web 测试的创作与调试技术
查看>>
python学习笔记3-列表
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
线程androidAndroid ConditionVariable的用法
查看>>
stap-prep 需要安装那些内核符号
查看>>
转载:ASP.NET Core 在 JSON 文件中配置依赖注入
查看>>
socket初识
查看>>
磁盘测试工具
查看>>
代码变量、函数命名神奇网站
查看>>
redis cli命令
查看>>
Problem B: 占点游戏
查看>>
python常用模块之sys, os, random
查看>>