如何判断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端,后台公司云迹监控发现 ...
 
随机推荐
- 安装Wamp时出现无法启动此程序,因为计算机中丢失MSVCR110.dll
			
一.问题描述 安装Wamp时出现无法启动此程序,因为计算机中丢失MSVCR110.dll 二.解决方法 首先进入 http://www.microsoft.com/zh-CN/download/det ...
 - Mariadb MySQL逻辑条件判断相关语句、函数使用举例介绍
			
MySQL逻辑条件判断相关语句.函数使用举例介绍 By:授客 QQ:1033553122 1. IFNULL函数介绍 IFNULL(expr1, expr2) 说明:假如expr1 不为NULL,则 ...
 - CSS3动画详解(图文教程)
			
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 本文主要内容: 过渡:transition 2D 转换 trans ...
 - AWS CSAA -- 04 AWS Object Storage and CDN - S3 Glacier and CloudFront(二)
			
015 Version Control - Lab 016 Cross Region Replication 017 Lifecycle Management Glacier - Lab 018 C ...
 - 软件工程-XP方法十二个最佳实践
 - c# 为什么要使用Array、ArrayList、List?
			
c#也是一直在进化的,从数组进化到ArrayList,再进化到泛型就是个例子. static void Main(string[] args) { //数组的增删改查 //定义数组 ] { ,,,, ...
 - 03-04_配置并启动Managed Server(受管服务器)
			
本文重点: 配置Managed Servers(受管服务器) 启动Managed Servers 原理 运行多个Managed Servers实例 一.配置Managed Se ...
 - PostgreSQL数据加载工具之pg_bulkload
			
1. 介绍 PostgreSQL提供了一个copy命令的便利数据加载工具,copy命令源于PostgreSQL数据库,copy命令支持文件与表之间的数据加载和表对文件的数据卸载.pg_bulkload ...
 - Linux parted命令详解
			
parted常见命令参数 Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...] Apply COMMANDs with PAR ...
 - SNMP协议利用
			
1.安装snmp服务 2.配置snmp服务 运行Services.msc 添加社区public,只读 启动服务 3.在kali运行 Snmpwalk -c public -v 2c IP 即可查看目标 ...