• 如何判断Android设备是否为模拟器


    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:Usersdell>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]
  • 相关阅读:
    Atom,AtomPub 和Java 转载
    使用OData协议查询Windows日志 转
    许可协议BSD GPL MPL LGPL APL转载
    Eclipse Galileo 简介
    常见证书格式和转换
    JVM简介转
    Android Native 代码开发学习笔记转载
    echarts——各个配置项详细说明总结
    Mysql 安装服务无法启动解决方案与使用的一般使用指令
    js中如何把字符串(文本)转化为对象
  • 原文地址:https://www.cnblogs.com/goodhacker/p/3404398.html
Copyright © 2020-2023  润新知