10
10
import android .provider .Settings ;
11
11
import android .support .annotation .RequiresApi ;
12
12
import android .support .annotation .RequiresPermission ;
13
+ import android .telecom .TelecomManager ;
14
+ import android .telephony .TelephonyManager ;
13
15
import android .text .TextUtils ;
14
16
15
17
import java .io .File ;
20
22
21
23
import static android .Manifest .permission .ACCESS_WIFI_STATE ;
22
24
import static android .Manifest .permission .INTERNET ;
25
+ import static android .Manifest .permission .READ_PHONE_STATE ;
23
26
24
27
/**
25
28
* <pre>
@@ -43,7 +46,8 @@ private DeviceUtils() {
43
46
public static boolean isDeviceRooted () {
44
47
String su = "su" ;
45
48
String [] locations = {"/system/bin/" , "/system/xbin/" , "/sbin/" , "/system/sd/xbin/" ,
46
- "/system/bin/failsafe/" , "/data/local/xbin/" , "/data/local/bin/" , "/data/local/" };
49
+ "/system/bin/failsafe/" , "/data/local/xbin/" , "/data/local/bin/" , "/data/local/" ,
50
+ "/system/sbin/" , "/usr/bin/" , "/vendor/bin/" };
47
51
for (String location : locations ) {
48
52
if (new File (location + su ).exists ()) {
49
53
return true ;
@@ -65,6 +69,48 @@ public static boolean isAdbEnabled() {
65
69
) > 0 ;
66
70
}
67
71
72
+ /**
73
+ * Return the imei of device.
74
+ *
75
+ * @return the imei of device
76
+ */
77
+ @ SuppressLint ("HardwareIds" )
78
+ @ RequiresPermission (value = READ_PHONE_STATE )
79
+ public static String getImei () {
80
+ String imei = "" ;
81
+ try {
82
+ TelephonyManager telephonyMgr = (TelephonyManager ) Utils .getApp ()
83
+ .getApplicationContext ().getSystemService (Context .TELEPHONY_SERVICE );
84
+ if (telephonyMgr != null ) {
85
+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .O ) {
86
+ imei = telephonyMgr .getImei ();
87
+ } else {
88
+ imei = telephonyMgr .getDeviceId ();
89
+ }
90
+ }
91
+ } catch (Exception e ) {
92
+ e .printStackTrace ();
93
+ }
94
+ return imei ;
95
+ }
96
+
97
+ /**
98
+ * Return the serial of device.
99
+ *
100
+ * @return the serial of device
101
+ */
102
+ @ SuppressLint ("HardwareIds" )
103
+ @ RequiresPermission (value = READ_PHONE_STATE )
104
+ public static String getSerial () {
105
+ String serial = "" ;
106
+ if (Build .VERSION .SDK_INT > Build .VERSION_CODES .O ) {
107
+ serial = Build .getSerial ();
108
+ } else {
109
+ serial = Build .SERIAL ;
110
+ }
111
+ return serial ;
112
+ }
113
+
68
114
/**
69
115
* Return the version name of device's system.
70
116
*
0 commit comments