@@ -20,6 +20,8 @@ class TelephonyIdsUtil {
20
20
private static String meids = null ;
21
21
private static String deviceIds = null ;
22
22
23
+ private static boolean allIdsAlreadyReadOnce = false ;
24
+
23
25
static void injectImei (Map <String , String > parameters , Context context , ILogger logger ) {
24
26
if (!AdjustImei .isImeiToBeRead ) {
25
27
return ;
@@ -32,13 +34,19 @@ static void injectImei(Map<String, String> parameters, Context context, ILogger
32
34
PackageBuilder .addString (parameters , "imeis" , getImeis (telephonyManager , logger ));
33
35
PackageBuilder .addString (parameters , "meids" , getMeids (telephonyManager , logger ));
34
36
PackageBuilder .addString (parameters , "device_ids" , getDeviceIds (telephonyManager , logger ));
37
+
38
+ allIdsAlreadyReadOnce = true ;
35
39
}
36
40
37
41
private static String getDeviceIds (TelephonyManager telephonyManager , ILogger logger ) {
38
42
if (deviceIds != null ) {
39
43
return deviceIds ;
40
44
}
41
45
46
+ if (allIdsAlreadyReadOnce ) {
47
+ return null ;
48
+ }
49
+
42
50
List <String > telephonyIdList = new ArrayList <String >();
43
51
for (int i = 0 ; i < 10 ; i ++) {
44
52
String telephonyId = getDeviceIdByIndex (telephonyManager , i , logger );
@@ -56,6 +64,10 @@ private static String getDefaultDeviceId(TelephonyManager telephonyManager, ILog
56
64
return deviceId ;
57
65
}
58
66
67
+ if (allIdsAlreadyReadOnce ) {
68
+ return null ;
69
+ }
70
+
59
71
try {
60
72
deviceId = telephonyManager .getDeviceId ();
61
73
return deviceId ;
@@ -81,6 +93,10 @@ private static String getImeis(TelephonyManager telephonyManager, ILogger logger
81
93
return imeis ;
82
94
}
83
95
96
+ if (allIdsAlreadyReadOnce ) {
97
+ return null ;
98
+ }
99
+
84
100
List <String > imeiList = new ArrayList <String >();
85
101
for (int i = 0 ; i < 10 ; i ++) {
86
102
String imei = getImeiByIndex (telephonyManager , i , logger );
@@ -97,6 +113,10 @@ private static String getDefaultImei(TelephonyManager telephonyManager, ILogger
97
113
return imei ;
98
114
}
99
115
116
+ if (allIdsAlreadyReadOnce ) {
117
+ return null ;
118
+ }
119
+
100
120
try {
101
121
if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .O ) {
102
122
imei = telephonyManager .getImei ();
@@ -124,6 +144,10 @@ public static String getMeids(TelephonyManager telephonyManager, ILogger logger)
124
144
return meids ;
125
145
}
126
146
147
+ if (allIdsAlreadyReadOnce ) {
148
+ return null ;
149
+ }
150
+
127
151
List <String > meidList = new ArrayList <String >();
128
152
for (int i = 0 ; i < 10 ; i ++) {
129
153
String meid = getMeidByIndex (telephonyManager , i , logger );
@@ -140,6 +164,10 @@ private static String getDefaultMeid(TelephonyManager telephonyManager, ILogger
140
164
return meid ;
141
165
}
142
166
167
+ if (allIdsAlreadyReadOnce ) {
168
+ return null ;
169
+ }
170
+
143
171
try {
144
172
if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .O ) {
145
173
meid = telephonyManager .getMeid ();
0 commit comments