admin
2022-08-09 399ac289f80b7a40aa4210341db6b447cacdcf14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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;
    }
 
}