高通 Android 12/13获取IMIE号

1、由于我们工厂smt需要显示imei号,因此需要

2、查阅相关资料Android O(之后)Android 10之后进行限制高通 Android 12/13获取IMIE号_第1张图片

 3、通过反射获取 imei号 

 /**

     * 反射获取 deviceId

     *

     * @param context

     * @param slotId slotId为卡槽Id,它的值为 0、1;

     * @return

     */

    public static String getDeviceIdByReflect(Context context, int slotId) {

        try {

            TelephonyManager tm = (TelephonyManager) context.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);

            Method method = tm.getClass().getMethod("getImei", int.class);

            return method.invoke(tm, slotId).toString();

        } catch (Throwable e) {

        }

        return "";

    }

4、通过 TelephonyManager 中getImei()方法获取

  /**

     * getImei获取 deviceId

     *

     * @param context

     * @param slotId slotId为卡槽Id,它的值为 0、1;

     * @return

     */

    public static String getDeviceIdByGetImei(Context context, int slotId) {

        try {

            TelephonyManager tm = (TelephonyManager) context.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {

                @SuppressLint("MissingPermission") String imeiNum = tm.getImei();
            }
//            Method method = tm.getClass().getMethod("getImei", int.class);
//
//            return method.invoke(tm, slotId).toString();

        } catch (Throwable e) {

        }

        return "";

    }

5、结果 获取imei号 如下图所示 

高通 Android 12/13获取IMIE号_第2张图片

高通 Android 12/13获取IMIE号_第3张图片

 6、到这里基本结束了,转载请注明出处,谢谢

7、记得添加系统权限 否则获取imei号可能会为null

  android:sharedUserId="android.uid.system"


你可能感兴趣的:(Android,那些年踩的坑整理,android,android,studio,java)