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]

更多相关文章

  1. 运行Android的emulator
  2. Android之adb环境变量配置及adb使用
  3. Android模拟器增大内存的方法
  4. 可执行的android C 程序
  5. Android(安卓)获取Ip
  6. Android(安卓)Fragment回退栈的使用
  7. Android(安卓)DataPickerDialog组建只显示年月或月日
  8. Android(安卓)N获取外置SD卡或挂载U盘路径的方法
  9. 最新基于adt-bundle-windows-x86的android开发环境搭建

随机推荐

  1. Android(安卓)manifest文件中的标签详细
  2. Android中Looper的实现原理
  3. [置顶] Android的monkey测试
  4. Android数据库之SQLite数据库zz
  5. Android(安卓)ApiDemos示例解析(77):Grap
  6. [置顶] android webview 更改显示的分辨
  7. Android各种信息的显示
  8. Android基于SOAP标准调用Webservice实现
  9. 发布Android应用程序过程
  10. android gradle 修改生成的apk的名字