分享好友 最新动态首页 最新动态分类 切换频道
关于android双卡手机sim卡信息采集适配的心得手机信息「关于android双卡手机sim卡信息采集适配的心得」
2025-01-09 14:27

        这几天通过对各个厂商的双卡信息适配的研究,总结了几点规律,写这篇心得主要是为了能够抛砖引玉,和大家一起分享,一起讨论,源码已上传。

    一、android5.0以上(包含5.0)的版本双卡信息适配:

1、参数名意义:

        slotId(simId):卡曹值Id,对应物理卡槽的位置0表示主卡位,1表示副卡位,-1表示无卡;

        subId:据说是对应存放双卡信息数据库中的索引id,这个id目前只能从android5.0开始才能获取的到,获取需要用到的方法为

        SubscriptionManager.getSubId(int slotId),注意的是这个方法返回的是一个long(5.0)/int类型数组,取数组第一个;

(获取某些特定的信息需要用到subid,但大部分情况都是用slotId)

2、信息获取

        imei:telephonyManager.getDeviceId(int slotid),获取imei;

        imsi:telephonyManager.getSubscriberId(int slotid),获取imsi;

        operator:telephonyManager.getSimOperator(long/int subid),这里要特别注意的是,获取operator需要用subid,并且,在android5.0版本,getSimOperator方法的参数类型为long,之后的版本改成了int,在反射获取方法的时候要特别注意;

        simState:telephonyManager.getSimState(int slotid),获取手机sim卡的状态码;

以上信息的获取方法,在5.0到6.0之间都是被系统隐藏的方法,从6.0开始方法公开。

        defaultDataSlotId:默认上网卡,5.0到6.0之间获取方法为,先获取subId,static SubscriptionManager.getDefaultDataSubId(),方法为隐藏的;再通过static SubscriptionManager.getSlotId(long/int subId),方法个版本都为隐藏的;从7.0开始方法名变为static SubscriptionManager.getDefaultDataSubscriptionId(),方法也变为公开的;获取指定卡槽的SmsManager对象实例:5.0版本获取方法为static SmsManager.getSmsManagerForSubscriber(long subId),方法为隐藏的;从5.1版本开始获取的方法名为static SmsManager.getSmsManagerForSubscriptionId(int subId),方法是公开的,特别注意的是这里的参数类型也由long变为了int;

        subId的获取:static SubscriptionManager.getSubId(int slotId),此方法一直被隐藏,从未公开。

二、android5.0一下版本双卡信息适配:

        因为谷歌官方在5.0以上才开始对手机双卡进行支持,所以在5.0以下都是厂商自己加入了自定义的类来维护对双卡的支持,下面根据几个大的厂商来讲解下他们自定义了哪些类来支持低版本的双卡功能:

1、联发科:MTK在低版本中的TeleManager中加入了一些方法,命名规则是xxxxGemini(),比如获取指定imei好就是getDeviceIdGemini(int slotId),以此类推,但要注意的是,获取operator和imsi传入的参数不再是subId了,而是统一改用slotId去获取;此外,联发科在新增了几个类:

            android.telephony.gemini.GeminiSmsManager , com.mediatek.telephony.SmsManagerEx:这两个是指定sim卡发送短信用的,SmsManagerEx发送短信的方法是SmsManagerEx.getDefault().sendDataMessage(String desAddr, String scAddr, short port, byte[] data, PendingIntent sendIntent,PendingIntent deliveryIntent, int slotId);与原API中不同的是参数列表最后多传了一个slotId用于指定用哪张sim卡发送;而GeminiSmsManager不一样的地方是它在每个方法名后面都加了一个后缀Gemini,例如发送短信的方法就是static GeminiSmsManager.sendDataMessageGemini(String desAddr, String scAddr, short port, byte[] data, int slotId, PendingIntentsendIntent,PendingIntent deliveryIntent);

            com.mediatek.telephony.TelephonyManagerEx:这个类是用于获取手机的imei、imsi、operator等信息用的,获取信息对应的方法名和原API中的TelephonyManager基本一致。

这几个自定义隐藏类大家可以把类反射出来看看里面有哪些内容。

2、高通:

        android.telephony.MSimTelephonyManager:这个类是高通对低版本手机获取imei、imsi、operator等信息的兼容,获取信息的方法名基本和原API的TelephonyManager一致,注意的是,获取operator信息的方法参数与联发科的一样都改为了用slotId获取而不是subId。

        android.telephony.MSimSmsManager:发送短信的类,调用方式为 MSimSmsManager.getDefault().sendDataMessage(String desAddr, String scAddr, short port, byte[] data, PendingIntent sendIntent,PendingIntent deliveryIntent, int slotId),与原API的SmsManager不同的是,参数列表最后多了一个slotId,指定用哪张卡发送短信。

        像华为、三星、小米等这些厂商都对低版本的双卡手机做了一定的修改,目前暂未收集完所有的获取信息,希望有知道的同学可以一起分享,完善对双卡手机信息的适配。

demo源码地址;

最新文章
史上最小安卓机 索爱SK17i港行到卖香港手机「史上最小安卓机 索爱SK17i港行到卖」
  【PConline香港 行情】索尼爱立信所推出的手机一直以年青人为主要的对象,旗下的手机更是融入了许多当前流行的元素。最近,索尼爱立信同时推出了三款新品,同样也是以学生一族为主要对象,而其中包括了Xperia Mini SK17i(以下简称为SK
捡部手机归还途中被偷,到底谁负责捡到手机不归还违法吗「捡部手机归还途中被偷,到底谁负责」
【案例简介】近日,重庆一大学女生捡到一部iPhone6Plus手机,在归还失主的途中,手机被偷。失主要求其赔偿或买同款新机,最后,女大学生妥协,分期付款买了部iPhone6Plus赔偿。据大学生说,遗失的手机是自己面试途中在卫生间捡到的,手机没
玩java游戏买什么手机好用又便宜_每一款JAVA游戏都是经典,但只有四款游戏,是90%玩家从小玩到大...什么手机好用又便宜「玩java游戏买什么手机好用又便宜_每一款JAVA游戏都是经典,但只有四
2000年彩屏手机开始流行,诺基亚作为当年世界第一的手机厂商,更是研发出了多款造型酷炫的手机,例如翻盖、推盖以及后来的触屏机,都曾被我们使用过。我还记得当年小的时候,拿着爸爸的手机在上面搜索和下载
如何正确使用蓝光雷达?这种雷达的使用有哪些应用场景?
蓝光雷达:应用场景与正确使用方法在当今科技飞速发展的时代,蓝光雷达作为一种先进的技术手段,正逐渐在多个领域发挥着重要作用。然而,要想充分发挥其优势,正确的使用方法至关重要。首先,我们来了解一下蓝光雷达的工作原理。蓝光雷达是
优秀的 WIFI 渗透工具汇总手机平台「优秀的 WIFI 渗透工具汇总」
今天给大家收集和整理了一些常用的 WiFi 渗透工具,工具对于我们这些人来说是最熟悉的东西之一了,选择一个好的工具会让你事半功倍。(工具顺序不分名次) WIFI 监听网卡推荐 3070 和 8187,二者各有优劣&#x
调整了!平均降价63%!
近日《国家基本医疗保险、工伤保险和生育保险药品目录(2024年)》正式落地实施参保人在医院药店购药按照新版目录执行此次调整共有91种药品新增进入国家医保药品目录同时43种临床已被替代或长期未生产供应的药品被调出此次调整新增的91种药
正在阅读:手机模拟大师怎么卸载手机模拟大师怎么卸载手机模拟大师「正在阅读:手机模拟大师怎么卸载手机模拟大师怎么卸载」
近日有一些小伙伴咨询小编关于手机模拟大师怎么卸载呢?下面就为大家带来了卸载手机模拟大师的方法步骤,有需要的小伙伴可以来了解了解哦。手机模拟大师怎么卸载?卸载手机模拟大师的方法步骤您可以通过搜索或者打开电脑安装软件的文件夹,找
蘑菇云游 v3.2.0蘑菇云手机「蘑菇云游 v3.2.0」
蘑菇云游是一款云游戏平台而且里面的游戏种类很丰富,海量游戏,包含全网最热门的游戏作品,快来玩得好手游。该版本解锁了无限时间,没有时间的限制随便玩。该版本解锁了无限钻石,想怎么玩就怎么玩。支持到了非常多的热门的手游、端游、大
小米 MIX 2S电池不耐用?先看看手机电池健康度小米手机电池「小米 MIX 2S电池不耐用?先看看手机电池健康度」
小米 MIX 2S手机使用久了电池不耐用、耗电快这些问题总是会碰到。那么小米 MIX 2S手机电池健康和使用情况等信息怎么查看?根据小米MIUI 不同版本小编总结了两个适用所有小米/红米手机电池健康查询方式对着步骤一定能查到。1、手机【设置】-
纯平背板+超竞全面屏,直板手机终极形态红魔9 Pro发布红魔手机「纯平背板+超竞全面屏,直板手机终极形态红魔9 Pro发布」
11月23日北京,红魔电竞旗舰最新力作——红魔9 Pro系列正式发布。发布会以“全面·不止电竞”作为主题,诠释了红魔从精于电竞,到不止电竞的全面超竞进化。红魔9 Pro系列作为一款全能电竞旗舰,拥有纯平背板和超竞全面屏,搭配第三代骁龙8
相关文章
推荐文章
发表评论
0评