| | |
| | | package com.runt.open.mvi.utils; |
| | | |
| | | import android.Manifest; |
| | | import android.annotation.SuppressLint; |
| | | import android.app.Activity; |
| | | import android.content.Context; |
| | | import android.content.pm.PackageManager; |
| | | import android.graphics.Point; |
| | | import android.os.Build; |
| | | import android.provider.Settings; |
| | | import android.telephony.TelephonyManager; |
| | | import android.text.TextUtils; |
| | | import android.util.DisplayMetrics; |
| | | import android.util.Log; |
| | | import android.view.Display; |
| | | import android.view.WindowManager; |
| | | |
| | | import androidx.core.app.ActivityCompat; |
| | | |
| | | import java.lang.reflect.Field; |
| | | import java.lang.reflect.Method; |
| | |
| | | sb.append("设备厂商:");//设备型号 |
| | | sb.append(getDeviceBrand() + "\t");//设备型号 |
| | | sb.append("程序版本号:" + getAppVersionCode(context) + " " + getAppVersionName(context) + "\t");//程序版本号 |
| | | sb.append("设备唯一标识符:" + getSerialNumber(context)); |
| | | sb.append("\n设备imei:" + getIMEI(context)); |
| | | sb.append("设备唯一标识符:" + DeviceIdUtils.getDeviceId(context)); |
| | | String str = sb.toString() + " \n"; |
| | | str += getDisplayInfomation(context) + " \n"; |
| | | str += getDensity(context) + " \n"; |
| | |
| | | } |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | |
| | | |
| | | public static String getSerialNumber(Context context) { |
| | | String serial = ""; |
| | | try { |
| | | if (Build.VERSION.SDK_INT >= 28) {//9.0+ |
| | | if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { |
| | | Log.i(TAG, "getMEID meid: READ_PHONE_STATE" ); |
| | | ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_PHONE_STATE}, 1567); |
| | | } else { |
| | | serial = Build.getSerial(); |
| | | } |
| | | } else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) {//8.0+ |
| | | serial = Build.SERIAL; |
| | | } else {//8.0- |
| | | Class<?> c = Class.forName("android.os.SystemProperties"); |
| | | Method get = c.getMethod("get", String.class); |
| | | serial = (String) get.invoke(c, "ro.serialno"); |
| | | } |
| | | } catch (Exception e) { |
| | | Log.e("e", "读取设备序列号异常:" + e.toString()); |
| | | } |
| | | return serial; |
| | | } |
| | | |
| | | public static String getIMEI(Context context) { |
| | | String deviceId = ""; |
| | | TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); |
| | | if (null != tm) { |
| | | if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { |
| | | Log.i(TAG, "getMEID meid: READ_PHONE_STATE" ); |
| | | ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_PHONE_STATE}, 1567); |
| | | } else { |
| | | if (tm.getDeviceId() != null) { |
| | | deviceId = tm.getDeviceId(); |
| | | } else { |
| | | deviceId = Settings.Secure.getString(context.getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID); |
| | | } |
| | | } |
| | | Log.d("deviceId--->", deviceId); |
| | | } |
| | | return ""; |
| | | } |
| | | |
| | | public static String getMEID() { |