安卓:查看配置信息

配置信息:

  1. 项目的配置信息
  2. 手机的配置信息

使用的时候建议封装成单例的工具类

  • 手机的配置信息 一般用Build
  • 项目的配置信息 一般用context
    App:
//项目的配置信息
public class AppinfoConfig {

    private static volatile AppinfoConfig singleton;

    private AppinfoConfig() {
    }

    public static AppinfoConfig getInstance() {
        if (singleton == null) {
            synchronized (AppinfoConfig.class) {
                if (singleton == null) {
                    singleton = new AppinfoConfig();
                }
            }
        }
        return singleton;
    }

    private Context context;
    //设备信息初始化
    public void init(Context context){
        this.context=context;
    }

    public String getPackname() {
        try {
            String versionName = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }

        return context.getPackageName();
    }

    public String getversionName() {
        try {
            String versionName = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
            return versionName;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }

        return "";
    }

    public String getversioncode() {
        try {
            int versionName = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode;
            return versionName+"";
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return "";
    }
}

DeviceInfoConfig:


    private static volatile DeCiceInfoConfig singleton;

    private DeCiceInfoConfig() {
    }

    public static DeCiceInfoConfig getInstance() {
        if (singleton == null) {
            synchronized (DeCiceInfoConfig.class) {
                if (singleton == null) {
                    singleton = new DeCiceInfoConfig();
                }
            }
        }
        return singleton;
    }
    private Context context;
    //设备信息初始化
    public void init(Context context){
        this.context=context;
    }


    public DeCiceInfoConfig(Context context) {
        this.context = context;
    }

    //厂商
    public String getMANUFACTURER(){
        return Build.MANUFACTURER;
    }

    //机型信息
    public String getMode(){
        return Build.MODEL;
    }

    public String getDEVICE(){
        return Build.DEVICE;
    }


    //机型信息
    public int getCODENAME(){
        return Build.VERSION.SDK_INT;
    }

    //设备号 GSM——IMEI CDMA——MEID
    @RequiresApi(api = Build.VERSION_CODES.M)
    public String getID(){
        if(Build.VERSION.SDK_INT>23){

        }else {
            String deviceid=getIMEI();
            if(deviceid==null){
                return deviceid=getMEID();
            }
            return getIMEI();
        }
       return null;
    }
    //    /**
//     * Android 5.0之前使用
//     * @param slotId
//     * @return
//     */
//    private String getIMEI(int slotId){
//        try {
//            Class clazz = Class.forName("android.os.SystemProperties");
//            Method method = clazz.getMethod("get", String.class, String.class);
//            String imei = (String) method.invoke(null, "ril.gsm.imei", "");
//            if(!TextUtils.isEmpty(imei)){
//                String[] split = imei.split(",");
//                if(split.length > slotId){
//                    imei = split[slotId];
//                }
//                LogUtils.d("getIMEI imei: "+ imei);
//                return imei;
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//            LogUtils.w("getIMEI error : "+ e.getMessage());
//        }
//        return "";
//    }
//
//    /**
//     * Android 5.0之前使用
//     * @return
//     */
//    private String getMEID(){
//        try {
//            Class clazz = Class.forName("android.os.SystemProperties");
//            Method method = clazz.getMethod("get", String.class, String.class);
//
//            String meid = (String) method.invoke(null, "ril.cdma.meid", "");
//            if(!TextUtils.isEmpty(meid)){
//                LogUtils.d("getMEID meid: "+ meid);
//                return meid;
//            }
//        } catch (Exception  e) {
//            e.printStackTrace();
//            LogUtils.w("getMEID error : "+ e.getMessage());
//        }
//        return "";
//    }
    //GMS——IMEI
    @RequiresApi(api = Build.VERSION_CODES.M)
    private String getIMEI() {
        @SuppressLint("ServiceCast")
        TelephonyManager systemService = (TelephonyManager) context.getSystemService(Context.TELECOM_SERVICE);
        @SuppressLint({"HardwareIds", "MissingPermission"})
        String imei = systemService.getDeviceId(TelephonyManager.PHONE_TYPE_GSM);
        return imei;
    }

    // CDMA——MEID

    @RequiresApi(api = Build.VERSION_CODES.M)
    private String getMEID() {
        @SuppressLint("ServiceCast")
        TelephonyManager systemService = (TelephonyManager) context.getSystemService(Context.TELECOM_SERVICE);
        @SuppressLint({"HardwareIds", "MissingPermission"})
        String meid = systemService.getDeviceId(TelephonyManager.PHONE_TYPE_CDMA);
        return meid;
    }

    //UTDID(um的)
    public String getUTDID(){
        return UMUtils.getUTDID(context);
    }


    //物理地址(um的)
    public String getMacAddress(){

        return UMUtils.getMac(context);
    }

    //屏幕分辨率
    public String getDisplay(){
        String display = Build.DISPLAY;
        return UMUtils.getDisplayResolution(context)+display;
    }

    @SuppressLint("MissingPermission")
    public String getLocation(){
        LocationManager systemService = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
        Location lastKnownLocation = systemService.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        return lastKnownLocation.getLatitude()+lastKnownLocation.getLongitude()+"";
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值