如何判断Android设备是否为模拟器
android.os.Build.BRAND:获取设备品牌
如果获取的Landroid/os/Build;->BRAND的值为 "generic"则为模拟器上运行。
android.os.Build.MODEL :获取手机的型号 设备名称。
如果发现Landroid/os/Build;->MODEL 为"sdk",则为模拟器上运行。
代码示例:
const-string v0, "phone"
invoke-virtual {p0, v0}, Lcom/xxx/LoadingActivity;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/telephony/TelephonyManager;
invoke-virtual {v0}, Landroid/telephony/TelephonyManager;->getSubscriberId()Ljava/lang/String;
sget-object v0, Landroid/os/Build;->BRAND:Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v0
const-string v1, "generic"
invoke-virtual {v0, v1}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v0
const/16 v0, -1
if-eq v0, v2, :cond_0
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v0
const-string v1, "sdk"
invoke-virtual {v0, v1}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v0
if-eq v0, v2, :cond_0
invoke-virtual {p0}, Lcom/xxx/LoadingActivity;->finish()V
:cond_0
iget-object v0, p0, Lcom/xxx/LoadingActivity;->b:Landroid/content/SharedPreferences;
invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
以下信息可以被用来判断是否在模拟器上运行
C:\Users\dell>adb shell getprop [ro.kernel.qemu]:[1]
[ro.hardware]:[goldfish]
[ro.build.tags]:[test-keys]
[ro.product.model]:[sdk]
[ro.product.brand]:[generic]
[ro.product.name]:[sdk]
[ro.product.device]:[generic]
[ro.product.board]:[]
[ro.product.manufacturer]:[unknown]
[ro.board.platform]:[]
[ro.build.product]:[generic]
[ro.build.fingerprint]:[generic/sdk/generic:2.3.1/GSI11/93351:eng/test-keys]
如何判断Android设备是否为模拟器的更多相关文章
- 【Android】Android 代码判断当前设备是否为模拟器
[Android]Android 代码判断当前设备是否为模拟器 方法比较简单,直接粘贴代码 //判断当前设备是否是模拟器.如果返回TRUE,则当前是模拟器,不是返回FALSE public stati ...
- 如何判断Android设备是手机还是平板?
转自:http://blog.csdn.net/zuolongsnail/article/details/8682950 Android开发需要适配手机和平板,有些需求在实现中就要判断设备是手机还是平 ...
- Android获取屏幕实际高度跟显示高度,判断Android设备是否拥有虚拟功能键
//获取屏幕尺寸,不包括虚拟功能高度 getWindowManager().getDefaultDisplay().getHeight(); 获取屏幕原始尺寸高度,包括虚拟功能键高度, private ...
- HCE:Host-based Card Emulation基于Android设备的卡片模拟器
HCE技术支持提供了一个软实现SE的通路,Service实现的方式很多,可以使用文件,使用网络,甚至连接真正的SE.支持HCE的测试手机:目前可以确定使用了NXP PN547作为CLF的NFC手机已经 ...
- bat如何创建多级文件夹(在android设备中)
在android设备中要创建多个或者多级文件夹时,手动去创建费时费力(有点傻),一个bat文件就能很好的实现这个功能. 1.首先创建同级多个文件夹且在该文件夹下生成一个文件 @echo off ech ...
- Android 编程下判断当前设备是手机还是平板
/** * 判断当前设备是手机还是平板,代码来自 Google I/O App for Android * @param context * @return 平板返回 True,手机返回 False ...
- Android判断当前的android设备是否处于联网状态
首先,要想获得当前android设备是否处于联网状态,那么android本身给我们提供了一个服务 private ConnectivityManager connectivityManager;//用 ...
- Android 判断当前设备是手机还是平板
Android开发需要适配手机和平板,有些需求实现时就要求判断设备是手机还是平板.网上很多说通过设备尺寸.DPI.版本号.是否具备电话功能等进行判断,不过都不算太精确.这里分享一个简洁给力的方法(官方 ...
- Android设备唯一性判断
前段时间项目需要一个功能,就是在操作完某一个逻辑之后返回给客户一个红包,安全校验团队需要我们提供android设备的唯一标示,起初直接通过获取设备的imei号传给了server端,后台公司云迹监控发现 ...
随机推荐
- Android Dragger2快速入门浅析
定Dagger2的基本介绍:dagger2是一个依赖注入框架,在编译期间自动生成代码,负责依赖对象的创建. 使用Dagger2的好处:为了进一步解耦和方便测试,我们会使用依赖注入的方式构建对象 (不使 ...
- Angular调用父Scope的函数
app.directive('toggle', function(){ return { restrict: 'A', template: '<a ng-click="f()" ...
- AOP编程 - 淘宝京东网络处理
现象描述 当我们打开京东 app 进入首页,如果当前是没有网络的状态,里面的按钮点击是没有反应的.只有当我们打开网络的情况下,点击按钮才能跳转页面,按照我们一般人写代码的逻辑应该是这个样子: /** ...
- android中checkbox自定义样式
1.首先res/drawable中定义checkbox_style.xml样式: <?xml version="1.0" encoding="utf-8" ...
- JMeter安装+配置+运行
环境配置: 操作系统:Win7系统 jdk版本:1.8 JMeter版本:3.0 一 JMeter的安装配置过程 JMeter是100%纯java应用程序,它在任何支持完整java实现的系统上都能正 ...
- pip 设置国内源
最近使用 pip 安装包,动辄十几 k 甚至几 k 的下载速度,确实让人安装的时候心情十分不好.所以还是要给 pip 换一个国内的源.可以显著的提升安装速度.有更多的时间来研究算法. 下面,列一下收集 ...
- python基础学习8----文件基本操作
一.文件的打开,open函数 f = open(file_name,mode)#创建文件对象 打开模式有很多种 1. 'r': 以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. 2. ...
- Linux 修改root密码(忘记密码后)
重置密码(一) 背景: 本文基于虚拟机的RHEL6.6版本 RHEL7与此略有不同 重新启动Linux系统 进入如下后界面,再按e键 3. 进入如下界面后,使用键盘上的上下键,选中第二项以kerne ...
- Linux启动一个服务后,服务的某个文件所在的目录下出现类似:systemd-private.xxxxxx的目录
Linux的目录下面形如: [root@:vg_adn_tidbCkhsTest:172.31.17.203 /var/lib/mysql]#ll /tmp total drwxr root root ...
- Servlet 核心接口
在Servlet体系结构中,除了用于实现Servlet的Servlet接口.GenericServlet类和HttpServlet类外,还有一些辅助Servlet获取相关资源信息的重要接口,了解这些接 ...