.class public final Lcom/blankj/utilcode/util/DeviceUtils; .super Ljava/lang/Object; .source "DeviceUtils.java" # static fields .field private static final KEY_UDID:Ljava/lang/String; = "KEY_UDID" .field private static volatile udid:Ljava/lang/String; # direct methods .method private constructor ()V .locals 2 .line 40 invoke-direct {p0}, Ljava/lang/Object;->()V .line 41 new-instance v0, Ljava/lang/UnsupportedOperationException; const-string v1, "u can\'t instantiate me..." invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw v0 .end method .method public static getABIs()[Ljava/lang/String; .locals 4 .line 329 sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v1, 0x15 if-lt v0, v1, :cond_0 .line 330 sget-object v0, Landroid/os/Build;->SUPPORTED_ABIS:[Ljava/lang/String; return-object v0 .line 332 :cond_0 sget-object v0, Landroid/os/Build;->CPU_ABI2:Ljava/lang/String; invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v0 const/4 v1, 0x0 const/4 v2, 0x1 if-nez v0, :cond_1 const/4 v0, 0x2 new-array v0, v0, [Ljava/lang/String; .line 333 sget-object v3, Landroid/os/Build;->CPU_ABI:Ljava/lang/String; aput-object v3, v0, v1 sget-object v1, Landroid/os/Build;->CPU_ABI2:Ljava/lang/String; aput-object v1, v0, v2 return-object v0 :cond_1 new-array v0, v2, [Ljava/lang/String; .line 335 sget-object v2, Landroid/os/Build;->CPU_ABI:Ljava/lang/String; aput-object v2, v0, v1 return-object v0 .end method .method public static getAndroidID()Ljava/lang/String; .locals 3 .line 101 invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application; move-result-object v0 invoke-virtual {v0}, Landroid/app/Application;->getContentResolver()Landroid/content/ContentResolver; move-result-object v0 const-string v1, "android_id" .line 100 invoke-static {v0, v1}, Landroid/provider/Settings$Secure;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 const-string v1, "9774d56d682e549c" .line 104 invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v1 const-string v2, "" if-eqz v1, :cond_0 return-object v2 :cond_0 if-nez v0, :cond_1 move-object v0, v2 :cond_1 return-object v0 .end method .method private static getInetAddress()Ljava/net/InetAddress; .locals 5 .line 259 :try_start_0 invoke-static {}, Ljava/net/NetworkInterface;->getNetworkInterfaces()Ljava/util/Enumeration; move-result-object v0 .line 260 :cond_0 :goto_0 invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z move-result v1 if-eqz v1, :cond_3 .line 261 invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/net/NetworkInterface; .line 263 invoke-virtual {v1}, Ljava/net/NetworkInterface;->isUp()Z move-result v2 if-nez v2, :cond_1 goto :goto_0 .line 264 :cond_1 invoke-virtual {v1}, Ljava/net/NetworkInterface;->getInetAddresses()Ljava/util/Enumeration; move-result-object v1 .line 265 :cond_2 invoke-interface {v1}, Ljava/util/Enumeration;->hasMoreElements()Z move-result v2 if-eqz v2, :cond_0 .line 266 invoke-interface {v1}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/net/InetAddress; .line 267 invoke-virtual {v2}, Ljava/net/InetAddress;->isLoopbackAddress()Z move-result v3 if-nez v3, :cond_2 .line 268 invoke-virtual {v2}, Ljava/net/InetAddress;->getHostAddress()Ljava/lang/String; move-result-object v3 const/16 v4, 0x3a .line 269 invoke-virtual {v3, v4}, Ljava/lang/String;->indexOf(I)I move-result v3 :try_end_0 .catch Ljava/net/SocketException; {:try_start_0 .. :try_end_0} :catch_0 if-gez v3, :cond_2 return-object v2 :catch_0 move-exception v0 .line 274 invoke-virtual {v0}, Ljava/net/SocketException;->printStackTrace()V :cond_3 const/4 v0, 0x0 return-object v0 .end method .method public static getMacAddress()Ljava/lang/String; .locals 3 const/4 v0, 0x0 .line 118 check-cast v0, [Ljava/lang/String; invoke-static {v0}, Lcom/blankj/utilcode/util/DeviceUtils;->getMacAddress([Ljava/lang/String;)Ljava/lang/String; move-result-object v1 .line 119 invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v2 if-eqz v2, :cond_1 invoke-static {}, Lcom/blankj/utilcode/util/DeviceUtils;->getWifiEnabled()Z move-result v2 if-eqz v2, :cond_0 goto :goto_0 :cond_0 const/4 v1, 0x1 .line 120 invoke-static {v1}, Lcom/blankj/utilcode/util/DeviceUtils;->setWifiEnabled(Z)V const/4 v1, 0x0 .line 121 invoke-static {v1}, Lcom/blankj/utilcode/util/DeviceUtils;->setWifiEnabled(Z)V .line 122 invoke-static {v0}, Lcom/blankj/utilcode/util/DeviceUtils;->getMacAddress([Ljava/lang/String;)Ljava/lang/String; move-result-object v0 return-object v0 :cond_1 :goto_0 return-object v1 .end method .method public static varargs getMacAddress([Ljava/lang/String;)Ljava/lang/String; .locals 2 .line 156 invoke-static {}, Lcom/blankj/utilcode/util/DeviceUtils;->getMacAddressByNetworkInterface()Ljava/lang/String; move-result-object v0 .line 157 invoke-static {v0, p0}, Lcom/blankj/utilcode/util/DeviceUtils;->isAddressNotInExcepts(Ljava/lang/String;[Ljava/lang/String;)Z move-result v1 if-eqz v1, :cond_0 return-object v0 .line 160 :cond_0 invoke-static {}, Lcom/blankj/utilcode/util/DeviceUtils;->getMacAddressByInetAddress()Ljava/lang/String; move-result-object v0 .line 161 invoke-static {v0, p0}, Lcom/blankj/utilcode/util/DeviceUtils;->isAddressNotInExcepts(Ljava/lang/String;[Ljava/lang/String;)Z move-result v1 if-eqz v1, :cond_1 return-object v0 .line 164 :cond_1 invoke-static {}, Lcom/blankj/utilcode/util/DeviceUtils;->getMacAddressByWifiInfo()Ljava/lang/String; move-result-object v0 .line 165 invoke-static {v0, p0}, Lcom/blankj/utilcode/util/DeviceUtils;->isAddressNotInExcepts(Ljava/lang/String;[Ljava/lang/String;)Z move-result v1 if-eqz v1, :cond_2 return-object v0 .line 168 :cond_2 invoke-static {}, Lcom/blankj/utilcode/util/DeviceUtils;->getMacAddressByFile()Ljava/lang/String; move-result-object v0 .line 169 invoke-static {v0, p0}, Lcom/blankj/utilcode/util/DeviceUtils;->isAddressNotInExcepts(Ljava/lang/String;[Ljava/lang/String;)Z move-result p0 if-eqz p0, :cond_3 return-object v0 :cond_3 const-string p0, "" return-object p0 .end method .method private static getMacAddressByFile()Ljava/lang/String; .locals 4 const-string v0, "getprop wifi.interface" const/4 v1, 0x0 .line 280 invoke-static {v0, v1}, Lcom/blankj/utilcode/util/UtilsBridge;->execCmd(Ljava/lang/String;Z)Lcom/blankj/utilcode/util/ShellUtils$CommandResult; move-result-object v0 .line 281 iget v2, v0, Lcom/blankj/utilcode/util/ShellUtils$CommandResult;->result:I if-nez v2, :cond_0 .line 282 iget-object v0, v0, Lcom/blankj/utilcode/util/ShellUtils$CommandResult;->successMsg:Ljava/lang/String; if-eqz v0, :cond_0 .line 284 new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V const-string v3, "cat /sys/class/net/" invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 const-string v2, "/address" invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-static {v0, v1}, Lcom/blankj/utilcode/util/UtilsBridge;->execCmd(Ljava/lang/String;Z)Lcom/blankj/utilcode/util/ShellUtils$CommandResult; move-result-object v0 .line 285 iget v1, v0, Lcom/blankj/utilcode/util/ShellUtils$CommandResult;->result:I if-nez v1, :cond_0 .line 286 iget-object v0, v0, Lcom/blankj/utilcode/util/ShellUtils$CommandResult;->successMsg:Ljava/lang/String; if-eqz v0, :cond_0 .line 287 invoke-virtual {v0}, Ljava/lang/String;->length()I move-result v1 if-lez v1, :cond_0 return-object v0 :cond_0 const-string v0, "02:00:00:00:00:00" return-object v0 .end method .method private static getMacAddressByInetAddress()Ljava/lang/String; .locals 8 .line 237 :try_start_0 invoke-static {}, Lcom/blankj/utilcode/util/DeviceUtils;->getInetAddress()Ljava/net/InetAddress; move-result-object v0 if-eqz v0, :cond_1 .line 239 invoke-static {v0}, Ljava/net/NetworkInterface;->getByInetAddress(Ljava/net/InetAddress;)Ljava/net/NetworkInterface; move-result-object v0 if-eqz v0, :cond_1 .line 241 invoke-virtual {v0}, Ljava/net/NetworkInterface;->getHardwareAddress()[B move-result-object v0 if-eqz v0, :cond_1 .line 242 array-length v1, v0 if-lez v1, :cond_1 .line 243 new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V .line 244 array-length v2, v0 const/4 v3, 0x0 move v4, v3 :goto_0 const/4 v5, 0x1 if-ge v4, v2, :cond_0 aget-byte v6, v0, v4 const-string v7, "%02x:" new-array v5, v5, [Ljava/lang/Object; .line 245 invoke-static {v6}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte; move-result-object v6 aput-object v6, v5, v3 invoke-static {v7, v5}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object v5 invoke-virtual {v1, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; add-int/lit8 v4, v4, 0x1 goto :goto_0 .line 247 :cond_0 invoke-virtual {v1}, Ljava/lang/StringBuilder;->length()I move-result v0 sub-int/2addr v0, v5 invoke-virtual {v1, v3, v0}, Ljava/lang/StringBuilder;->substring(II)Ljava/lang/String; move-result-object v0 :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 return-object v0 :catch_0 move-exception v0 .line 252 invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V :cond_1 const-string v0, "02:00:00:00:00:00" return-object v0 .end method .method private static getMacAddressByNetworkInterface()Ljava/lang/String; .locals 8 .line 216 :try_start_0 invoke-static {}, Ljava/net/NetworkInterface;->getNetworkInterfaces()Ljava/util/Enumeration; move-result-object v0 .line 217 :cond_0 :goto_0 invoke-interface {v0}, Ljava/util/Enumeration;->hasMoreElements()Z move-result v1 if-eqz v1, :cond_3 .line 218 invoke-interface {v0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/net/NetworkInterface; if-eqz v1, :cond_0 .line 219 invoke-virtual {v1}, Ljava/net/NetworkInterface;->getName()Ljava/lang/String; move-result-object v2 const-string v3, "wlan0" invoke-virtual {v2, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result v2 if-nez v2, :cond_1 goto :goto_0 .line 220 :cond_1 invoke-virtual {v1}, Ljava/net/NetworkInterface;->getHardwareAddress()[B move-result-object v1 if-eqz v1, :cond_0 .line 221 array-length v2, v1 if-lez v2, :cond_0 .line 222 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V .line 223 array-length v2, v1 const/4 v3, 0x0 move v4, v3 :goto_1 const/4 v5, 0x1 if-ge v4, v2, :cond_2 aget-byte v6, v1, v4 const-string v7, "%02x:" new-array v5, v5, [Ljava/lang/Object; .line 224 invoke-static {v6}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte; move-result-object v6 aput-object v6, v5, v3 invoke-static {v7, v5}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object v5 invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; add-int/lit8 v4, v4, 0x1 goto :goto_1 .line 226 :cond_2 invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I move-result v1 sub-int/2addr v1, v5 invoke-virtual {v0, v3, v1}, Ljava/lang/StringBuilder;->substring(II)Ljava/lang/String; move-result-object v0 :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 return-object v0 :catch_0 move-exception v0 .line 230 invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V :cond_3 const-string v0, "02:00:00:00:00:00" return-object v0 .end method .method private static getMacAddressByWifiInfo()Ljava/lang/String; .locals 2 .line 196 :try_start_0 invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application; move-result-object v0 .line 197 invoke-virtual {v0}, Landroid/app/Application;->getApplicationContext()Landroid/content/Context; move-result-object v0 const-string v1, "wifi" invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/net/wifi/WifiManager; if-eqz v0, :cond_0 .line 199 invoke-virtual {v0}, Landroid/net/wifi/WifiManager;->getConnectionInfo()Landroid/net/wifi/WifiInfo; move-result-object v0 if-eqz v0, :cond_0 .line 202 invoke-virtual {v0}, Landroid/net/wifi/WifiInfo;->getMacAddress()Ljava/lang/String; move-result-object v0 .line 203 invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v1 :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 if-nez v1, :cond_0 return-object v0 :catch_0 move-exception v0 .line 209 invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V :cond_0 const-string v0, "02:00:00:00:00:00" return-object v0 .end method .method public static getManufacturer()Ljava/lang/String; .locals 1 .line 303 sget-object v0, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String; return-object v0 .end method .method public static getModel()Ljava/lang/String; .locals 3 .line 313 sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String; const-string v1, "" if-eqz v0, :cond_0 .line 315 invoke-virtual {v0}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v0 const-string v2, "\\s*" invoke-virtual {v0, v2, v1}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v1 :cond_0 return-object v1 .end method .method public static getSDKVersionCode()I .locals 1 .line 90 sget v0, Landroid/os/Build$VERSION;->SDK_INT:I return v0 .end method .method public static getSDKVersionName()Ljava/lang/String; .locals 1 .line 81 sget-object v0, Landroid/os/Build$VERSION;->RELEASE:Ljava/lang/String; return-object v0 .end method .method private static getUdid(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .locals 3 const-string v0, "" .line 518 invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v1 const-string v2, "-" if-eqz v1, :cond_0 .line 519 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1}, Ljava/lang/StringBuilder;->()V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-static {}, Ljava/util/UUID;->randomUUID()Ljava/util/UUID; move-result-object p1 invoke-virtual {p1}, Ljava/util/UUID;->toString()Ljava/lang/String; move-result-object p1 invoke-virtual {p1, v2, v0}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; move-result-object p1 invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 return-object p0 .line 521 :cond_0 new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B move-result-object p1 invoke-static {p1}, Ljava/util/UUID;->nameUUIDFromBytes([B)Ljava/util/UUID; move-result-object p1 invoke-virtual {p1}, Ljava/util/UUID;->toString()Ljava/lang/String; move-result-object p1 invoke-virtual {p1, v2, v0}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; move-result-object p1 invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static getUniqueDeviceId()Ljava/lang/String; .locals 2 const-string v0, "" const/4 v1, 0x1 .line 417 invoke-static {v0, v1}, Lcom/blankj/utilcode/util/DeviceUtils;->getUniqueDeviceId(Ljava/lang/String;Z)Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public static getUniqueDeviceId(Ljava/lang/String;)Ljava/lang/String; .locals 1 const/4 v0, 0x1 .line 430 invoke-static {p0, v0}, Lcom/blankj/utilcode/util/DeviceUtils;->getUniqueDeviceId(Ljava/lang/String;Z)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static getUniqueDeviceId(Ljava/lang/String;Z)Ljava/lang/String; .locals 3 if-nez p1, :cond_0 .line 458 invoke-static {p0}, Lcom/blankj/utilcode/util/DeviceUtils;->getUniqueDeviceIdReal(Ljava/lang/String;)Ljava/lang/String; move-result-object p0 return-object p0 .line 460 :cond_0 sget-object p1, Lcom/blankj/utilcode/util/DeviceUtils;->udid:Ljava/lang/String; if-nez p1, :cond_3 .line 461 const-class p1, Lcom/blankj/utilcode/util/DeviceUtils; monitor-enter p1 .line 462 :try_start_0 sget-object v0, Lcom/blankj/utilcode/util/DeviceUtils;->udid:Ljava/lang/String; if-nez v0, :cond_2 .line 463 invoke-static {}, Lcom/blankj/utilcode/util/UtilsBridge;->getSpUtils4Utils()Lcom/blankj/utilcode/util/SPUtils; move-result-object v0 const-string v1, "KEY_UDID" const/4 v2, 0x0 invoke-virtual {v0, v1, v2}, Lcom/blankj/utilcode/util/SPUtils;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 if-eqz v0, :cond_1 .line 465 sput-object v0, Lcom/blankj/utilcode/util/DeviceUtils;->udid:Ljava/lang/String; .line 466 sget-object p0, Lcom/blankj/utilcode/util/DeviceUtils;->udid:Ljava/lang/String; monitor-exit p1 return-object p0 .line 468 :cond_1 invoke-static {p0}, Lcom/blankj/utilcode/util/DeviceUtils;->getUniqueDeviceIdReal(Ljava/lang/String;)Ljava/lang/String; move-result-object p0 monitor-exit p1 return-object p0 .line 470 :cond_2 monitor-exit p1 goto :goto_0 :catchall_0 move-exception p0 monitor-exit p1 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw p0 .line 472 :cond_3 :goto_0 sget-object p0, Lcom/blankj/utilcode/util/DeviceUtils;->udid:Ljava/lang/String; return-object p0 .end method .method public static getUniqueDeviceId(Z)Ljava/lang/String; .locals 1 const-string v0, "" .line 443 invoke-static {v0, p0}, Lcom/blankj/utilcode/util/DeviceUtils;->getUniqueDeviceId(Ljava/lang/String;Z)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method private static getUniqueDeviceIdReal(Ljava/lang/String;)Ljava/lang/String; .locals 3 .line 477 :try_start_0 invoke-static {}, Lcom/blankj/utilcode/util/DeviceUtils;->getAndroidID()Ljava/lang/String; move-result-object v0 .line 478 invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v1 if-nez v1, :cond_0 .line 479 new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 const/4 v2, 0x2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-static {v1, v0}, Lcom/blankj/utilcode/util/DeviceUtils;->saveUdid(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object p0 :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 return-object p0 .line 483 :catch_0 :cond_0 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 const/16 v0, 0x9 invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 const-string v0, "" invoke-static {p0, v0}, Lcom/blankj/utilcode/util/DeviceUtils;->saveUdid(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method private static getWifiEnabled()Z .locals 2 .line 127 invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application; move-result-object v0 const-string v1, "wifi" invoke-virtual {v0, v1}, Landroid/app/Application;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/net/wifi/WifiManager; if-nez v0, :cond_0 const/4 v0, 0x0 return v0 .line 129 :cond_0 invoke-virtual {v0}, Landroid/net/wifi/WifiManager;->isWifiEnabled()Z move-result v0 return v0 .end method .method public static isAdbEnabled()Z .locals 3 .line 70 invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application; move-result-object v0 invoke-virtual {v0}, Landroid/app/Application;->getContentResolver()Landroid/content/ContentResolver; move-result-object v0 const-string v1, "adb_enabled" const/4 v2, 0x0 .line 69 invoke-static {v0, v1, v2}, Landroid/provider/Settings$Secure;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I move-result v0 if-lez v0, :cond_0 const/4 v2, 0x1 :cond_0 return v2 .end method .method private static varargs isAddressNotInExcepts(Ljava/lang/String;[Ljava/lang/String;)Z .locals 5 .line 176 invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v0 const/4 v1, 0x0 if-eqz v0, :cond_0 return v1 :cond_0 const-string v0, "02:00:00:00:00:00" .line 179 invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_1 return v1 :cond_1 const/4 v0, 0x1 if-eqz p1, :cond_4 .line 182 array-length v2, p1 if-nez v2, :cond_2 goto :goto_1 .line 185 :cond_2 array-length v2, p1 move v3, v1 :goto_0 if-ge v3, v2, :cond_4 aget-object v4, p1, v3 if-eqz v4, :cond_3 .line 186 invoke-virtual {v4, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v4 if-eqz v4, :cond_3 return v1 :cond_3 add-int/lit8 v3, v3, 0x1 goto :goto_0 :cond_4 :goto_1 return v0 .end method .method public static isDevelopmentSettingsEnabled()Z .locals 3 .line 399 invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application; move-result-object v0 invoke-virtual {v0}, Landroid/app/Application;->getContentResolver()Landroid/content/ContentResolver; move-result-object v0 const-string v1, "development_settings_enabled" const/4 v2, 0x0 .line 398 invoke-static {v0, v1, v2}, Landroid/provider/Settings$Global;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I move-result v0 if-lez v0, :cond_0 const/4 v2, 0x1 :cond_0 return v2 .end method .method public static isDeviceRooted()Z .locals 11 const-string v0, "/system/bin/" const-string v1, "/system/xbin/" const-string v2, "/sbin/" const-string v3, "/system/sd/xbin/" const-string v4, "/system/bin/failsafe/" const-string v5, "/data/local/xbin/" const-string v6, "/data/local/bin/" const-string v7, "/data/local/" const-string v8, "/system/sbin/" const-string v9, "/usr/bin/" const-string v10, "/vendor/bin/" .line 51 filled-new-array/range {v0 .. v10}, [Ljava/lang/String; move-result-object v0 const/4 v1, 0x0 move v2, v1 :goto_0 const/16 v3, 0xb if-ge v2, v3, :cond_1 .line 54 aget-object v3, v0, v2 .line 55 new-instance v4, Ljava/io/File; new-instance v5, Ljava/lang/StringBuilder; invoke-direct {v5}, Ljava/lang/StringBuilder;->()V invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v3 const-string v5, "su" invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v3 invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v3 invoke-direct {v4, v3}, Ljava/io/File;->(Ljava/lang/String;)V invoke-virtual {v4}, Ljava/io/File;->exists()Z move-result v3 if-eqz v3, :cond_0 const/4 v0, 0x1 return v0 :cond_0 add-int/lit8 v2, v2, 0x1 goto :goto_0 :cond_1 return v1 .end method .method public static isEmulator()Z .locals 6 .line 356 sget-object v0, Landroid/os/Build;->FINGERPRINT:Ljava/lang/String; const-string v1, "generic" invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v0 const/4 v2, 0x0 const/4 v3, 0x1 if-nez v0, :cond_2 sget-object v0, Landroid/os/Build;->FINGERPRINT:Ljava/lang/String; .line 357 invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String; move-result-object v0 const-string v4, "vbox" invoke-virtual {v0, v4}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v0 if-nez v0, :cond_2 sget-object v0, Landroid/os/Build;->FINGERPRINT:Ljava/lang/String; .line 358 invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String; move-result-object v0 const-string v4, "test-keys" invoke-virtual {v0, v4}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v0 if-nez v0, :cond_2 sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String; const-string v4, "google_sdk" .line 359 invoke-virtual {v0, v4}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v0 if-nez v0, :cond_2 sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String; const-string v5, "Emulator" .line 360 invoke-virtual {v0, v5}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v0 if-nez v0, :cond_2 sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String; const-string v5, "Android SDK built for x86" .line 361 invoke-virtual {v0, v5}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v0 if-nez v0, :cond_2 sget-object v0, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String; const-string v5, "Genymotion" .line 362 invoke-virtual {v0, v5}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v0 if-nez v0, :cond_2 sget-object v0, Landroid/os/Build;->BRAND:Ljava/lang/String; .line 363 invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_0 sget-object v0, Landroid/os/Build;->DEVICE:Ljava/lang/String; invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v0 if-nez v0, :cond_2 :cond_0 sget-object v0, Landroid/os/Build;->PRODUCT:Ljava/lang/String; .line 364 invoke-virtual {v4, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_1 goto :goto_0 :cond_1 move v0, v2 goto :goto_1 :cond_2 :goto_0 move v0, v3 :goto_1 if-eqz v0, :cond_3 return v3 .line 368 :cond_3 invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application; move-result-object v0 const-string v1, "phone" invoke-virtual {v0, v1}, Landroid/app/Application;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/telephony/TelephonyManager; if-eqz v0, :cond_4 .line 370 invoke-virtual {v0}, Landroid/telephony/TelephonyManager;->getNetworkOperatorName()Ljava/lang/String; move-result-object v0 if-eqz v0, :cond_4 goto :goto_2 :cond_4 const-string v0, "" .line 375 :goto_2 invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String; move-result-object v0 const-string v1, "android" invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_5 return v3 .line 379 :cond_5 new-instance v0, Landroid/content/Intent; invoke-direct {v0}, Landroid/content/Intent;->()V const-string v1, "tel:123456" .line 380 invoke-static {v1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; move-result-object v1 invoke-virtual {v0, v1}, Landroid/content/Intent;->setData(Landroid/net/Uri;)Landroid/content/Intent; const-string v1, "android.intent.action.DIAL" .line 381 invoke-virtual {v0, v1}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent; .line 382 invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application; move-result-object v1 invoke-virtual {v1}, Landroid/app/Application;->getPackageManager()Landroid/content/pm/PackageManager; move-result-object v1 invoke-virtual {v0, v1}, Landroid/content/Intent;->resolveActivity(Landroid/content/pm/PackageManager;)Landroid/content/ComponentName; move-result-object v0 if-nez v0, :cond_6 move v0, v3 goto :goto_3 :cond_6 move v0, v2 :goto_3 if-eqz v0, :cond_7 return v3 :cond_7 return v2 .end method .method public static isSameDevice(Ljava/lang/String;)Z .locals 6 .line 489 invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v0 const/16 v1, 0x21 const/4 v2, 0x0 if-eqz v0, :cond_0 invoke-virtual {p0}, Ljava/lang/String;->length()I move-result v0 if-ge v0, v1, :cond_0 return v2 .line 490 :cond_0 sget-object v0, Lcom/blankj/utilcode/util/DeviceUtils;->udid:Ljava/lang/String; invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 const/4 v3, 0x1 if-eqz v0, :cond_1 return v3 .line 491 :cond_1 invoke-static {}, Lcom/blankj/utilcode/util/UtilsBridge;->getSpUtils4Utils()Lcom/blankj/utilcode/util/SPUtils; move-result-object v0 const/4 v4, 0x0 const-string v5, "KEY_UDID" invoke-virtual {v0, v5, v4}, Lcom/blankj/utilcode/util/SPUtils;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 .line 492 invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_2 return v3 .line 493 :cond_2 invoke-virtual {p0}, Ljava/lang/String;->length()I move-result v0 sub-int/2addr v0, v1 add-int/lit8 v1, v0, 0x1 .line 494 invoke-virtual {p0, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v0 const-string v3, "1" .line 495 invoke-virtual {v0, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v3 const-string v4, "" if-eqz v3, :cond_4 .line 496 invoke-static {}, Lcom/blankj/utilcode/util/DeviceUtils;->getMacAddress()Ljava/lang/String; move-result-object v0 .line 497 invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v3 if-eqz v3, :cond_3 return v2 .line 500 :cond_3 invoke-virtual {p0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object p0 invoke-static {v4, v0}, Lcom/blankj/utilcode/util/DeviceUtils;->getUdid(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 return p0 :cond_4 const-string v3, "2" .line 501 invoke-virtual {v0, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_6 .line 502 invoke-static {}, Lcom/blankj/utilcode/util/DeviceUtils;->getAndroidID()Ljava/lang/String; move-result-object v0 .line 503 invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v3 if-eqz v3, :cond_5 return v2 .line 506 :cond_5 invoke-virtual {p0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object p0 invoke-static {v4, v0}, Lcom/blankj/utilcode/util/DeviceUtils;->getUdid(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 return p0 :cond_6 return v2 .end method .method public static isTablet()Z .locals 2 .line 345 invoke-static {}, Landroid/content/res/Resources;->getSystem()Landroid/content/res/Resources; move-result-object v0 invoke-virtual {v0}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration; move-result-object v0 iget v0, v0, Landroid/content/res/Configuration;->screenLayout:I and-int/lit8 v0, v0, 0xf const/4 v1, 0x3 if-lt v0, v1, :cond_0 const/4 v0, 0x1 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 return v0 .end method .method private static saveUdid(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .locals 1 .line 512 invoke-static {p0, p1}, Lcom/blankj/utilcode/util/DeviceUtils;->getUdid(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object p0 sput-object p0, Lcom/blankj/utilcode/util/DeviceUtils;->udid:Ljava/lang/String; .line 513 invoke-static {}, Lcom/blankj/utilcode/util/UtilsBridge;->getSpUtils4Utils()Lcom/blankj/utilcode/util/SPUtils; move-result-object p0 sget-object p1, Lcom/blankj/utilcode/util/DeviceUtils;->udid:Ljava/lang/String; const-string v0, "KEY_UDID" invoke-virtual {p0, v0, p1}, Lcom/blankj/utilcode/util/SPUtils;->put(Ljava/lang/String;Ljava/lang/String;)V .line 514 sget-object p0, Lcom/blankj/utilcode/util/DeviceUtils;->udid:Ljava/lang/String; return-object p0 .end method .method private static setWifiEnabled(Z)V .locals 2 .line 141 invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application; move-result-object v0 const-string v1, "wifi" invoke-virtual {v0, v1}, Landroid/app/Application;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/net/wifi/WifiManager; if-nez v0, :cond_0 return-void .line 143 :cond_0 invoke-virtual {v0}, Landroid/net/wifi/WifiManager;->isWifiEnabled()Z move-result v1 if-ne p0, v1, :cond_1 return-void .line 144 :cond_1 invoke-virtual {v0, p0}, Landroid/net/wifi/WifiManager;->setWifiEnabled(Z)Z return-void .end method