请教怎么判断设备是否是android的模拟器

作者&投稿:度垄 (若有异议请与网页底部的电邮联系)
如何判断Android设备是真机还是模拟器~

在代码中可以通过如下检测:
1,imei
http://baike.baidu.com/view/90099.htm
IMEI(International Mobile Equipment Identity)是移动设备国际身份码的缩写,移动装备国际辨识码,是由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。每一部手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。手机用户可以在手机中查到自己手机的IMEI码。
2,加入权限
在manifest.xml文件中要添加


3,判断方法,是模拟器就返回true
public boolean isEmulator(Context context) {
TelephonyManager tm = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
String imei = tm.getDeviceId();
if (imei == null || imei.equals("000000000000000")) {
return true;
}
return false;
}

/** 判断是否模拟器。如果返回TRUE,则当前是模拟器 * @param context * @return */ public static boolean isEmulator(Context context){ TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); String imei = tm.getDeviceId(); if (imei == null imei.equals("000000000000000")){ return true; } return false; }这个方法没大量测试过,应该是WORK的,一般真机都有IMEI的,不过也见过工程机的IMEI是000000000000000还是0。

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 v0
16
17 const-string v1, "generic"
18
19 invoke-virtual {v0, v1}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
20
21 move-result v0
22
23 const/16 v0, -1
24
25 if-eq v0, v2, :cond_0
26
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 v0
32
33 const-string v1, "sdk"
34
35 invoke-virtual {v0, v1}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
36
37 move-result v0
38
39 if-eq v0, v2, :cond_0
40
41 invoke-virtual {p0}, Lcom/xxx/LoadingActivity;->finish()V
42
43 :cond_0
44 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]


酒店摄像头怎么检查, 教你5招
出行旅游,入住酒店,判断酒店房间是否安装了微型摄像头,教你以下5种方法:1.检查房间 仔细检查房间中的墙壁、天花板和家具等地方是否有可疑的小孔或者未知的装置,这些都可能是隐藏的摄像头。也可以借助手机手电筒,可以将手电筒对准可疑的区域,如果看到了闪烁或者反射的光,那么就需要进一步检查是否有隐藏...

请教android里怎么判断扫描到的蓝牙设备是不是蓝牙耳机
到手机的蓝牙设备列表里面,找到你想确认的蓝牙设备,首先要配对。配对不成功什么也别提。配对成功以后,到这个设备的属性里面去看,如果是蓝牙耳机,至少应该包括类似“媒体音频”(不同厂商名字可能略有不同)这样的选项。如果是可以通话的耳机,应该还具备“手机音频”(不同厂商名字可能略有不同)这样的...

请教怎么判断设备是否是android的模拟器
\/** 判断是否模拟器。如果返回TRUE,则当前是模拟器 * @param context * @return *\/ public static boolean isEmulator(Context context){ TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); String imei = tm.getDeviceId(); if (imei ==...

漏电保护器怎么用简单的方法辨别它是否坏了?
漏电保护器的使用方法:1、把漏保上面的闸给推上去。2、再按下测试按钮(有T字符号)。每一只漏电开关旁边都有一个测试按钮(有T字符号)来测试该只漏电开关的好坏,当漏电开关二根线接好通上电后,推上开关,接一下测试按钮,推上开关马上跌下,自动复位,此漏电开关为好,如不能跌下为坏!

怎么分辨苹果有锁无锁
无锁版可以随意升级而且不必考虑信号破 解问题,所以无锁版相对于有锁版也要贵一 点。 如果有锁的,你只能上一种卡,无锁的可以上移动联通电信。 都可以的.如何查看是否有锁机呢,请看下面:首先见教程查询到自己的设备的IMEI,将IMEI记录下来 打开http:\/\/www.iphoneox.com\/,输入你设备的IMEI 等待...

我想买部二手不干胶印刷机,请教如何检测机器
三、清楚你要购入的二手机,原来是印卡纸还是薄纸,与你的作用是否一致。一般来说,原来是印薄纸的,你可用来印刷薄纸,也可经调节后,用来印刷卡纸(车速要降低)。若原来长期印卡纸的,则你只能用来印刷卡纸,不能印刷薄纸。否则易产生套印不准和其他印刷故障。罗兰700系列另当别论。四、了解设备的...

怎么判断教室摄像头开没开
开了监控设备是没有灯的,有的还有红外摄像,晚上也可以摄下来。从表面上看,是不能判断它开没开的,但是摄像头一般不关,只是平时没人总盯着屏幕看,但是摄像一直在运行,有情况还可以调录像回放。摄像头室内版 1、网络人摄像机11(普通版)是一种结合传统摄像机与网络技术所产生的新一代摄像机,...

怎么知道哪个是自己登录的微信设备?
在登录过的设备中就可以查看自己的微信曾经及现在登录所使用的设备了。下面我就演示一下详细的操作步骤,想了解的话就一起来看看吧❥(ゝω・✿ฺ)演示设备:一加11,软件版本:微信8.0.31 1、手机打开微信APP,进入微信后,点击【我】,再点击【设置】进入;2、进入新页面...

华为手机闪屏?别慌,几招教你快速排查!
华为手机闪屏?别慌,几招教你快速排查!在使用华为手机时,你是否遇到过闪屏问题?别担心,下面几个小技巧帮你快速排查问题🔥温度异常手机温度过高或过低都可能导致闪屏。别急,等设备温度恢复正常,问题自

普宁市15266444343: 判断安卓手机是否root有三种方式 -
葛柿蛋氨: 安装RE文件文理器,尝试删除system文件夹的子文件夹app里面的系统程序,注意讲装载方式选择为可读写,如能删除说明已ROOT,反之则未ROOT.刷机必须ROOT!

普宁市15266444343: 怎么判断自己的手机是不是android机 -
葛柿蛋氨: 安卓手机软件是apk格式 安卓系统 设置里有关于本机..你的手机不属于安卓系统 是塞班S60第三版 安卓系统手机特点触摸大屏 高分辨率 强劲CPU 全触摸或侧滑全键盘.没有实体数字键盘的 也没有非触摸屏的

普宁市15266444343: Android检测设备是否有root权限 -
葛柿蛋氨: 安卓设备的root指第三方应用可以运行系统权限,即调用su来实现linux命令.单纯的eng版本的设备虽然可以通过adb修改系统但不具有root权限,因为其不包含superuser和su,第三方应用无法调用.执行如下代码获取设备是否已被root,没有...

普宁市15266444343: 怎么用代码判断android手机是否开启了ROOT 权限 -
葛柿蛋氨: android手机开启了root权限,主要是根据root之后,获取了手机的最高权限,底层linux系统就会生成一个以su结尾的文件,su代表super超级权限,如下代码:/** * 判断当前手机是否有ROOT权限 * @return */ public boolean isRoot(){ boolean bool ...

普宁市15266444343: 如何知道iphone的是不是安卓系统 -
葛柿蛋氨: 毫无疑问,iphone装的都是ios系统,卖的应该是没有安卓的,这俩是死对头怎么可能在一起啊.虽然有牛人成功的在iphone上跑了安桌,但是没多大意义,iphone的ios就值不少钱啊..ios和安桌差距很大,光看就能分辨出来

普宁市15266444343: android怎样在代码里判断系统是否root -
葛柿蛋氨: 参考下面代码: /** * @author Kevin Kowalewski * */ public class Root { private static String LOG_TAG = Root.class.getName(); public boolean isDeviceRooted() { if (checkRootMethod1()){return true;} if (checkRootMethod2()){return true;} if (...

普宁市15266444343: java判断设备是android还是ios -
葛柿蛋氨: 1、通常一个http请求会带上用户设备信息,这个信息被存储在请求头的use-agent里2、可通过类似1 String userAgent = request.getHeader("user-agent"); 这样的方法获取到这个use-agent use-agent字符串中的内容类似:12 Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13 这些信息“足以”判断是安卓还是IOS.

普宁市15266444343: 请教怎么判断设备是否是android的模拟器 -
葛柿蛋氨: /** 判断是否模拟器.如果返回TRUE,则当前是模拟器* @param context* @return */ public static boolean isEmulator(Context context){TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); ...

普宁市15266444343: 怎么判断android系统是否有root权限 -
葛柿蛋氨: 你看你的菜单列表有没有一个叫授权管理的软件.如果有的话就证明你的手机已经ROOT了!或者下个RE管理器,打开它.会向你要ROOT权限的,如果你ROOT了、就可以给它ROOT权限了.

普宁市15266444343: 如何用代码判断android真机是否具有root权限 -
葛柿蛋氨: 【Android】Android 代码判断是否获取ROOT权限方法比较简单,直接粘贴代码public synchronized boolean getRootAhth(){Process process = null;DataOutputStream os = null;try{process = Runtime.getRuntime().exec("su");os = new ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网