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

最新文章
拿到华为Mate60后的第一个小长假,这些宝藏功能让旅行更尽兴手机vpn「拿到华为Mate60后的第一个小长假,这些宝藏功能让旅行更尽兴」
华为Mate60到手后的第一个小长假来了,当然要充分发挥新手机价值!假期准备去旅行的机主们看过来,提前知道这几个功能,这趟旅行省时又省心。 拿到新手机后,可以花上几分钟,把生活常用的门禁卡、交通卡、银行卡等添加到华为钱包,今后乘
可能这个是最便宜的4g手机了最便宜的手机「可能这个是最便宜的4g手机了」
1.购入原因:又是一年,回到老家,看见外公的无绳电话已经坏了,买个电话还几百块,还不如买个,但因为岁数的原因,也只能上手一台老人机,简单用用。一开始入手小辣椒(就是那个做便宜智能机的那个),但是身为一个老人机,语音播报、大字
看过《手机少年》的人还看过手机漫画「看过《手机少年》的人还看过」
感谢您对我方的信任,我们将按照法律法规要求,采取严格的安全保护措施,保护您的个人隐私信息。在此,我们郑重的提醒您:1.在您使用我方提供的服务时,建议您详细阅读本用户隐私政策,详细了解我方收集,存储,使用,披露和保护您的个人信
香港手机数码卖场之 先达广场香港手机「香港手机数码卖场之 先达广场」
香港手机卖场  先达广场是全港出名的水货手机卖场,同时亦有各种低价的行货以及后行。而购买正规行货的话,西洋菜街的丰泽以及百老汇等也是不错的选择。 手机水货胜地先达广场   先达广场:坐地铁至旺角站,从D出口出来就见了。先达广
抖音放心借逾期发短信会有什么影响
抖音放心借逾期发短信会怎么样小编导语在现代社会,网络借贷逐渐成为人们解决资金问的重要途径。抖音放心借作为一种新兴的借贷方式,以其便捷的借款流程和灵活的还款方式吸引了大量用户。借贷不仅仅是获取资金的方式,更涉及到信用、责任和
苹果手机热点怎么设置苹果手机怎么改热点名称「苹果手机热点怎么设置」
在日常生活中,我们有时需要将手机的网络共享给其他设备使用,这时就可以开启手机的热点功能。苹果手机作为市场上常见的智能手机品牌,其热点设置相对简单且功能强大。以下是关于苹果手机热点设置的详细步骤和注意事项。一、开启热点功能1.
手机是什么系统手机系统「手机是什么系统」
随着科技的飞速发展,手机已成为我们日常生活中不可或缺的一部分。然而,对于很多用户来说,手机的操作系统仍然是一个相对模糊的概念。本文将详细科普手机的操作系统,帮助大家更好地理解这一核心技术。一、操作系统的定义手机的操作系统,
社交应用手机应用下载「社交应用」
在微博,随时随地,发现新鲜事;在微博,每天有数以亿计的网友在围观、分享和互动;在微博,时政要闻、文娱热点、热门事件一手掌握;在微博,海量视频,等你来刷;专业达人、游戏动漫、美食时尚、情感搞笑、娱乐综艺、影视、体育、VLOG、知
红色警戒尤里的复仇红警手机版「红色警戒尤里的复仇」
红色警戒尤里的复仇手机版,是在安卓手机上就可以玩的一个版本。红警系列的游戏有很多,但很少有像这款这样力求还原端游的原汁原味。甚至一些武器和地形图,都是模拟端游的。该游戏没有广告不氪金,只有有趣的战争对抗。还记得在《红色警戒
波导 女人星F1波导手机「波导 女人星F1」
手机所支持的短信息协议也即多媒体协议,目前主要有SMS、EMS和MMS三种。SMSSMS(Short Messaging Service)即:短信服务。是最早的短消息业务,也是现在普及率最高的一种短消息业务,通过它移动电话之间可以互相收发短信,内容以文本、数字
相关文章
推荐文章
发表评论
0评