package com.runt.open.mvi.utils;
|
|
import android.annotation.SuppressLint;
|
import android.content.Context;
|
import android.provider.Settings;
|
import android.telephony.TelephonyManager;
|
import android.text.TextUtils;
|
|
|
import com.github.gzuliyujiang.oaid.DeviceID;
|
import com.github.gzuliyujiang.oaid.DeviceIdentifier;
|
|
import org.json.JSONObject;
|
|
import java.lang.reflect.Method;
|
import java.util.HashSet;
|
|
/**
|
* copy from: http://docs.aiduoyou.com/web/#/100/1495
|
*/
|
public class DeviceIdUtils {
|
|
|
public static String getDeviceId(Context context, int slotId) {
|
try {
|
//实例化TelephonyManager对象
|
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
Method method = telephonyManager.getClass().getMethod("getDeviceId", int.class);
|
return (String) method.invoke(telephonyManager, slotId);
|
} catch (Exception e) {
|
//e.printStackTrace();
|
}
|
return "";
|
}
|
|
public static String getImei(Context context, int slotId) {
|
try {
|
//实例化TelephonyManager对象
|
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
Method method = telephonyManager.getClass().getMethod("getImei", int.class);
|
return (String) method.invoke(telephonyManager, slotId);
|
} catch (Exception e) {
|
//e.printStackTrace();
|
}
|
return "";
|
}
|
|
@SuppressLint("MissingPermission")
|
public static String getDeviceId(Context context) {
|
try {
|
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
return tm.getDeviceId();
|
} catch (Exception e) {
|
//e.printStackTrace();
|
}
|
return "";
|
}
|
public static String getImei(Context context) {
|
try {
|
//实例化TelephonyManager对象
|
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
Method method = telephonyManager.getClass().getMethod("getImei");
|
return (String) method.invoke(telephonyManager);
|
} catch (Exception e) {
|
//e.printStackTrace();
|
}
|
return "";
|
}
|
|
public static String getAndroidId(Context context) {
|
try {
|
return Settings.System.getString(context.getContentResolver(), Settings.System.ANDROID_ID);
|
} catch (Exception e) {
|
//e.printStackTrace();
|
}
|
return "";
|
}
|
|
|
public static JSONObject getDeviceIds(Context context) {
|
try {
|
String imei1 = getDeviceId(context, 0);
|
String imei2 = getDeviceId(context, 1);
|
String imei3 = getImei(context, 0);
|
String imei4 = getImei(context, 1);
|
String imei5 = getDeviceId(context);
|
String imei6 = getImei(context);
|
HashSet<String> hashSet = new HashSet();
|
if (!TextUtils.isEmpty(imei1)) {
|
hashSet.add(imei1);
|
}
|
if (!TextUtils.isEmpty(imei2)) {
|
hashSet.add(imei2);
|
}
|
if (!TextUtils.isEmpty(imei3)) {
|
hashSet.add(imei3);
|
}
|
if (!TextUtils.isEmpty(imei4)) {
|
hashSet.add(imei4);
|
}
|
if (!TextUtils.isEmpty(imei5)) {
|
hashSet.add(imei5);
|
}
|
if (!TextUtils.isEmpty(imei6)) {
|
hashSet.add(imei6);
|
}
|
JSONObject jsonObject = new JSONObject();
|
int i = 0;
|
for (String value : hashSet) {
|
i ++;
|
jsonObject.put(String.valueOf(i), value);
|
}
|
|
String androidId = getAndroidId(context);
|
if (!TextUtils.isEmpty(androidId)) {
|
jsonObject.put("6", androidId);
|
}
|
|
DeviceID.supportedOAID(context);
|
// 获取OAID/AAID,同步调用
|
String OAID = DeviceIdentifier.getOAID(context);
|
jsonObject.put("7", OAID);
|
// 2022-03-15 暂时不管oaid
|
// String OAID = SPManager.getValue(SPManager.OAID, "");
|
// String OAID = PrefUtil.get(PrefUtil.OAID);
|
// if (!TextUtils.isEmpty(OAID)) {
|
// jsonObject.put("7", OAID);
|
// }
|
|
return jsonObject;
|
} catch (Exception e) {
|
//e.printStackTrace();
|
}
|
return null;
|
}
|
|
|
|
}
|