package com.wpc.library.util.common;
|
|
import android.Manifest;
|
import android.content.Context;
|
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageManager;
|
import android.provider.Settings;
|
import android.telephony.TelephonyManager;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import androidx.core.app.ActivityCompat;
|
|
import static android.content.Context.TELEPHONY_SERVICE;
|
|
public class DeviceUtil {
|
|
private static List<PackageInfo> installedPackages;
|
private static String imei;
|
private static String android_id;
|
private static String imsi;
|
|
public static synchronized List<PackageInfo> getInstalledPackagesCache(Context context) {
|
if (installedPackages != null) {
|
return installedPackages;
|
}
|
PackageManager pManager = context.getPackageManager();
|
//获取手机内所有应用
|
installedPackages = pManager.getInstalledPackages(0);
|
return installedPackages;
|
}
|
|
|
public static synchronized List<String> getInstalledPackageNamesCache(Context context) {
|
List<PackageInfo> list = getInstalledPackagesCache(context);
|
List<String> nameList = new ArrayList<>();
|
for (PackageInfo pi : list) {
|
nameList.add(pi.packageName);
|
}
|
return nameList;
|
}
|
|
public static synchronized String getImeiCache(Context context) {
|
if (imei != null) {
|
return imei;
|
}
|
|
TelephonyManager manager = (TelephonyManager) context.getSystemService(TELEPHONY_SERVICE);
|
try {
|
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
|
return "";
|
}
|
imei = manager.getDeviceId();
|
} catch (Exception e) {
|
|
}
|
imei = imei == null ? "" : imei;
|
return imei;
|
}
|
|
public static synchronized String getAndroidIdCache(Context context) {
|
if (android_id != null) {
|
return android_id;
|
}
|
try {
|
android_id = Settings.System.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
|
} catch (Exception e) {
|
|
}
|
android_id = android_id == null ? "" : android_id;
|
return android_id;
|
}
|
|
|
public static synchronized String getImsiCache(Context context) {
|
if (imsi != null) {
|
return imsi;
|
}
|
TelephonyManager mTelephonyMgr = (TelephonyManager) context
|
.getSystemService(Context.TELEPHONY_SERVICE);
|
try {
|
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
|
return "";
|
}
|
imsi = mTelephonyMgr.getSubscriberId();
|
}catch(Exception e){
|
|
}
|
imsi = imsi == null ? "" : imsi;
|
return imsi;
|
}
|
|
}
|