美文网首页
头条投放sdk获取imei的方式

头条投放sdk获取imei的方式

作者: wsspace | 来源:发表于2020-07-07 15:04 被阅读0次
    • 问题:
      头条的点击量中的设备id与我方获取的设备id差异大,即是自然量多
    • 分析:
      在android10以前是用imei进行归因,imei的获取接口有getImei和getDeviceId,imei的获取方式和结果可能与头条有差异
    • 解决方法:
      通过提交工单了解头条获取imei的机制,并采用相同的机制获取
    • 结果:工单已经提交我3个工作日了,仍未获得头条的答复(失望)

    • 延伸:获取imei的方式
      • getImei:这个接口是api在26以后推荐使用的,能获取imei
      • getDeviceId:这个接口是api在26以前的,目前已为过时的方法,该方法在卡槽插入为移动和联通卡时,获取的值为imei,在卡槽插入为电信卡时,获取的值为meid (当你拨出sim卡,不插入时,获取的值为上次插卡时获取的值,如上次插入为电信卡,拨卡后再获取仍为电信卡)
      • getMeid:在api26以后,获取电信卡的meid有了专门的方法
        综上,个人得出以下获取imei的方法(最好在得到imei码后,将其缓存,以后要使用直接从缓存中读取):
        public static String getIMEI(Context context) {
            String imei = "";
            try {
                TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
                if (Build.VERSION.SDK_INT >= 29) {
                    imei = "";
                } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    imei = telephonyManager.getImei();
                } else {
                    imei = telephonyManager.getDeviceId();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return imei;
        }
    
    • 双卡的手机获取情况又如何?
      • getImei
        • 主卡槽为移动联通电信:获取的值均为imei
        • 主卡槽为空,卡槽2为任意运营商卡:获取的值为卡槽2的imei
      • getDeviceId
        • 主卡槽为移动联通:获取的值为imei
        • 主卡槽为电信:获取的值为meid
        • 主卡槽为空,卡槽2为任意运营商卡:获取的值为卡槽1的imei
      • getImei(index):获取指定卡槽的imei,index为卡槽位置
      • getDeviceId(index):获取指定卡槽的imei或meid,index为卡槽位置

    相关文章

      网友评论

          本文标题:头条投放sdk获取imei的方式

          本文链接:https://www.haomeiwen.com/subject/cpzoqktx.html