高通 Android 12/13获取IMIE号

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

2、查阅相关资料Android O(之后)Android 10之后进行限制

 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号 如下图所示 

 

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

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

  android:sharedUserId="android.uid.system"

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值