@@ -20,6 +20,8 @@ class TelephonyIdsUtil {
2020 private static String meids = null ;
2121 private static String deviceIds = null ;
2222
23+ private static boolean allIdsAlreadyReadOnce = false ;
24+
2325 static void injectImei (Map <String , String > parameters , Context context , ILogger logger ) {
2426 if (!AdjustImei .isImeiToBeRead ) {
2527 return ;
@@ -32,13 +34,19 @@ static void injectImei(Map<String, String> parameters, Context context, ILogger
3234 PackageBuilder .addString (parameters , "imeis" , getImeis (telephonyManager , logger ));
3335 PackageBuilder .addString (parameters , "meids" , getMeids (telephonyManager , logger ));
3436 PackageBuilder .addString (parameters , "device_ids" , getDeviceIds (telephonyManager , logger ));
37+
38+ allIdsAlreadyReadOnce = true ;
3539 }
3640
3741 private static String getDeviceIds (TelephonyManager telephonyManager , ILogger logger ) {
3842 if (deviceIds != null ) {
3943 return deviceIds ;
4044 }
4145
46+ if (allIdsAlreadyReadOnce ) {
47+ return null ;
48+ }
49+
4250 List <String > telephonyIdList = new ArrayList <String >();
4351 for (int i = 0 ; i < 10 ; i ++) {
4452 String telephonyId = getDeviceIdByIndex (telephonyManager , i , logger );
@@ -56,6 +64,10 @@ private static String getDefaultDeviceId(TelephonyManager telephonyManager, ILog
5664 return deviceId ;
5765 }
5866
67+ if (allIdsAlreadyReadOnce ) {
68+ return null ;
69+ }
70+
5971 try {
6072 deviceId = telephonyManager .getDeviceId ();
6173 return deviceId ;
@@ -81,6 +93,10 @@ private static String getImeis(TelephonyManager telephonyManager, ILogger logger
8193 return imeis ;
8294 }
8395
96+ if (allIdsAlreadyReadOnce ) {
97+ return null ;
98+ }
99+
84100 List <String > imeiList = new ArrayList <String >();
85101 for (int i = 0 ; i < 10 ; i ++) {
86102 String imei = getImeiByIndex (telephonyManager , i , logger );
@@ -97,6 +113,10 @@ private static String getDefaultImei(TelephonyManager telephonyManager, ILogger
97113 return imei ;
98114 }
99115
116+ if (allIdsAlreadyReadOnce ) {
117+ return null ;
118+ }
119+
100120 try {
101121 if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .O ) {
102122 imei = telephonyManager .getImei ();
@@ -124,6 +144,10 @@ public static String getMeids(TelephonyManager telephonyManager, ILogger logger)
124144 return meids ;
125145 }
126146
147+ if (allIdsAlreadyReadOnce ) {
148+ return null ;
149+ }
150+
127151 List <String > meidList = new ArrayList <String >();
128152 for (int i = 0 ; i < 10 ; i ++) {
129153 String meid = getMeidByIndex (telephonyManager , i , logger );
@@ -140,6 +164,10 @@ private static String getDefaultMeid(TelephonyManager telephonyManager, ILogger
140164 return meid ;
141165 }
142166
167+ if (allIdsAlreadyReadOnce ) {
168+ return null ;
169+ }
170+
143171 try {
144172 if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .O ) {
145173 meid = telephonyManager .getMeid ();
0 commit comments