分享好友 最新动态首页 最新动态分类 切换频道
关于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源码地址;

最新文章
围观!最佳可折叠手机推荐:三星华为、小米蓝绿厂等,你喜欢谁?三星翻盖手机「围观!最佳可折叠手机推荐:三星华为、小米蓝绿厂等,你喜欢谁?」
哈喽,您好!我是原呵呵,点点关注吧,更多精彩内容等着您可折叠智能手机的想法得到了相当多的支持者和反对者,后者大多抱怨其高昂的价格和所谓的脆弱性。三星通过 Galaxy Z Fold 3 和 Galaxy Z Flip 3 采取了重大更新来解决这些问题,这两
周总理逝世3小时后遗体被解剖,邓颖超拿到结果后,顿时潸然泪下
在阅读此文前,诚邀您点个“关注”,听故事品百味人生的同时,还能获取不一样的参与感,感谢您的支持!编辑|L1976年1月8日上午,工作人员眼含热泪怀着沉痛的心情将一则消息发往全国各地:我们敬爱的周总理在北京逝世。周总理去世之前曾交代
威图手机为什么这么贵-为什么这么值钱威图手机「威图手机为什么这么贵-为什么这么值钱」
威图一直是手机界中的奢侈品牌,一直是商务高端人士首选的品牌。那么为什么威图手机的价格可以卖到那么贵却还是有不少忠实的用户呢,小编今天就跟大家说说威图手机卖得贵的原因,其实也不是不讲道理的贵。威图手机为什么这么贵原因一威图手
手机遗落出租车竟引出“职业代捡人”,让我开一辈子出租?手机出租「手机遗落出租车竟引出“职业代捡人”,让我开一辈子出租?」
  央视网消息:前两天,贵州省贵阳市的小杜把自己的手机掉在了出租车上,让她没有想到的是,自己的手机,最终竟然流落到了贩卖手机的人手里,面临着刷机的可能,当事出租车驾驶员更是语出惊人。   小杜告诉记者,近日凌晨,她和朋友打
推荐十大好玩大型手机单机游戏,畅享精彩游戏体验好玩的单机手机游戏排行榜「推荐十大好玩大型手机单机游戏,畅享精彩游戏体验」
随着智能手机的普及,越来越多的人开始沉迷于手机游戏。尤其是大型单机游戏,因其独特的剧情、丰富的内容和精美的画面而受到玩家们的喜爱。本文将为您推荐一些好玩的大型手机单机游戏,让您在闲暇时间尽情享受游戏带来的乐趣。开放世界类游
这些年消失的四个手机品牌,你听过吗?西门子手机「这些年消失的四个手机品牌,你听过吗?」
这些年消失的手机品牌有很多,现在来列举几个消失的手机品牌,但很多人都没听过和用过。首先是西门子手机,世界上首部滑盖手机就是西门子的SL10,随后发布的SL55滑盖手机,更是引领了滑盖手机的发展。西门子这个品牌在当时,有点类似现在的
手机如何获得root权限 手机获得root权限的利弊手机root「手机如何获得root权限 手机获得root权限的利弊」
  在我们日常生活中,手机已经成为了一种必需品,随着智能手机的普及,智能手机更是为我们的生活提供了许多的方便。现如今使用安卓系统的智能手机的消费者不在少数,在我们使用手机的过程中,有时会发现进行一些操作时会受到权限的限制,
飞跃悬崖
“各位观众,你们好!我是‘尘世美不美’节目的主持人紫萱。今天我们尘世美不美的主题是‘80后的现实与理想’,节目组通过网络报名和微信推荐,我们最终选取了几个在现实生活中具有一定代表性的人物,这些人物不是明星、也不是名人,而是实
注意!2025年公积金房贷有新变化
近期西安市公积金管理中心官网发布了《关于印发〈西安市住房公积金贷款实施细则〉的通知》,通知中明确了2025年公积金房贷月偿还贷款本息额、提前还款等多个细则的新变化,一起来看看吧。1、月偿还贷款本息额不得超过家庭收入的50%。连续足
想起诉交通事故需要什么手续
六年车是需要上线检测的。 根据相关规定六年以内的小型、微型非营运载客汽车面包车、7 座及 7 座以上车辆除外每两年检查一次不用上线第六年则要上线检测。
相关文章
推荐文章
发表评论
0评