原本只有两个imei号,需要再加个显示meid的

override/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java

这个文件来控制能显示的preference的

首先displayPreference这个方法有个循环

for (int simSlotNumber = 1; simSlotNumber < mTelephonyManager.getPhoneCount();simSlotNumber++) {

因为是支持双卡的手机,所以mTelephonyManager.getPhoneCount()返回的是2,那这个循环体就会显示两个preference,而我们需要加一个显示meid所以,让循环再加一次

simSlotNumber < mTelephonyManager.getPhoneCount() + 1

循环体里设置了每个preference应该显示什么

getTitle(int simSlot)方法里设置preference的标题,我们只需要加个判断当是新加的preference就显示MEID

if (simSlot == 2){return mContext.getString(R.string.status_meid_number);}

其他的还是源码

return phoneType == PHONE_TYPE_CDMA ? getTitleForCdmaPhone(simSlot): getTitleForGsmPhone(simSlot);

这里直接返回GSM的 return getTitleForGsmPhone(simSlot);

反正都是显示IMEI

然后就是小标题方法getSummary(int simSlot)

同理也是

if (simSlot == 2){return mTelephonyManager.getMeid(0);}

源码是

return phoneType == PHONE_TYPE_CDMA ? mTelephonyManager.getMeid(simSlot): mTelephonyManager.getImei(simSlot);

意思是如果是CMDA那就返回显示的是MEID,所以原本设计的就是PHONE_TYPE_CDMA的和meid挂钩

这个preference点击后还要进入一个dialog,这里面也需要改

src/com/android/settings/deviceinfo/imei/ImeiInfoDialogController.java

populateImeiInfo这个方法里源码有

if (mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA) {

这个判断改成我们新加的if (mSlotId == 2) {,然后再执行updateDialogForCdmaPhone();

就是显示对话框内容,updateDialogForCdmaPhone这个方法里主要就是mDialog.setText(ID_MEID_NUMBER_VALUE, getMeid());这个显示meid号就行

所以把其他没用的,原本存在的全去掉

//*/tyd.yantao 20220824 remove useless itemsmDialog.removeViewFromScreen(ID_MIN_NUMBER_LABEL);mDialog.removeViewFromScreen(ID_MIN_NUMBER_VALUE);mDialog.removeViewFromScreen(R.id.prl_version_label);mDialog.removeViewFromScreen(ID_PRL_VERSION_VALUE);//*/

在getMeid方法里换掉原来的获取meid的方法,改为return mTelephonyManager.getMeid(0);

原来的return mTelephonyManager.getMeid(mSlotId);这个出不来,因为这只有一个MEID

还有个方法isValidSlotIndex,里面返回的还是原来的

return slotIndex >= 0 && slotIndex < telephonyManager.getPhoneCount();

需要改为

return slotIndex >= 0 && slotIndex < telephonyManager.getPhoneCount()+1;

因为加了一个preference了,需要同步,如果不同步那么会影响mTelephonyManager的赋值对象实例化,因为在这个类的构造方法ImeiInfoDialogController中

else if(isValidSlotIndex(slotId, tm)) {mTelephonyManager = tm

而这个tm就是上边获得的

TelephonyManager tm = context.getSystemService(TelephonyManager.class);

设置-关于手机里显示IMEI号和MEID。相关推荐

  1. IMEI号和MEID号

    IMEI国际移动设备识别码(IMEI:International Mobile Equipment Identification Number)是区别移动设备的标志,储存在移动设备中,可用于监控被窃或 ...

  2. 如何获取IMEI号和MEID号

    IMEI号是GSM的概念,CDMA对应的是MEID号. IMEI(International Mobile Equipment Identity)是国际移动设备身份码,目前GSM/WCDMA/LTE手 ...

  3. 电脑字体在哪个文件夹_【安卓】造字(下):如何将生成的字体设置为手机系统显示字体...

    四维空间阵时间 2020年8月17日 ▓▓▓▓▓▓▓▓▓▓▓░░░ 各位如果喜欢四哥的推送,麻烦点击文中卡片签到支持一下四哥. 各位,由于之前蓝奏云的链接可能出了些问题,所以四哥之前做的推送以及蓝奏链 ...

  4. [原创]关于设置linux中vim 显示行号

    1.更改所有账户配置 直接更改/etc/vimrc vim /etc/vimrc 在vimrc文件的最后添加 set nu 即可 wq退出. 这样,不论使用哪个账号登陆,vim打开后都显示行号 2.为 ...

  5. 新卡装在手机里显示无服务器,为什么我的手机卡今天突然变成无服务,是怎么回事...

    手机SIM卡变成无服务的原因: 1.手机SIM卡故障.将SIM卡放入到其它手机上面看看是否可以正常使用: 2.手机SIM卡与手机接触不良.把手机上面的SIM卡取出后清理手机卡槽.擦拭SIM卡后再放入到 ...

  6. C# DataGrid 控件在winform里显示行号

    #region 行绘制事件 ,为DataGridView每行写上序号/// <summary>/// 行绘制事件 ,为DataGridView每行写上序号/// </summary& ...

  7. 用超级终端给手机烧IMEI号

    在拨号界面输入*#06#可查看手机的IMEI号,但烧机完成后手机是没有IMEI号的,所以也无法识别SIM卡,下面介绍一下用超级终端烧号的过程 1.打开超级终端,命名任意 2.选择com79(80,99 ...

  8. linux vi代码高亮,linux Vi编辑器代码高亮设置及永久显示行号的方法

    在linux中用vi编辑和修改文件配置中没有彩色显示文件的内容,特别一些关键字不能彩色显示,给我们配置服务过程中造成极大的不方便.[其实主要是vi本身不带颜色的,vim带颜色]下面给出一种解决的方法. ...

  9. 有信号但是无法连接到移动网络连接服务器,手机打电话显示无法连接到移动网络怎么回事?...

    手机打电话显示无法连接到移动网络怎么回事?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 手机打电话显示无法连接到移动网 ...

最新文章

  1. Android Studio 新建项目的R文件丢失的解决方法
  2. 【Android 安全】DEX 加密 ( DEX 加密使用到的相关工具 | dx 工具 | zipalign 对齐工具 | apksigner 签名工具 )
  3. Linux and the Device Tree
  4. 笑傲江湖客户端服务器地址修改,《笑傲江湖》改键调整操作手把手教你玩笑傲...
  5. Android学习总结00之废话
  6. Oracle查看表空间,创建表空间
  7. using在sql中是什么意思_扇贝英语地道表达法——“call for”是什么意思呢?
  8. 你的第一杯Web 2.0 —— 快速浏览jQuery、Spring MVC和XStream/Jettison
  9. html非封闭标签,自封闭的html标签
  10. linux 创建LVM磁盘
  11. 13分钟搭建动易PHP论坛(OS:Linux)
  12. 用Python学《微积分B》(序)
  13. linux设置ipsan_linux挂载ipsan服务器
  14. 动平衡仪制作方法总结
  15. c语言中变量要加引号吗,CMake中引号用法总结
  16. 睿智的目标检测22——Keras搭建RFBnet目标检测平台
  17. [蓝桥杯]分解质因数
  18. java 消息提醒_JAVA怎么样实现即时消息提醒
  19. 锋利的jQuery读书笔记-第7章 jQuery插件的使用和写法
  20. 代码随想录第四天 leetcode 24、19、206

热门文章

  1. 经济日报pdf批量下载整合
  2. 关于ALEXA的流量排名的参数介绍
  3. 网络虚拟化城域网创新实践
  4. 32g服务器做成虚拟,服务器32g内存 tomcat设置多大
  5. jenkin构建报错信息及解决方案
  6. Postgres忘记密码如何修改密码
  7. 网络嗅探之一 --- 原理篇
  8. 专访关东升:松耦合分层架构设计
  9. 联合证券|港股再融资“春江水暖” 资本争购热门赛道企业
  10. 高等数学笔记-乐经良老师-第四章-微分中值定理和导数的应用-第五节-曲线的曲率