分享好友 最新动态首页 最新动态分类 切换频道
关于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 S10和Galaxy Note 10两款手机和Tab S6平板指纹识别存在漏洞。此公告引起全球多家银行警惕,中国银行已发布公告,暂时关闭该型号手
手机电池健康多少正常手机电量「手机电池健康多少正常」
  手机电池健康度(主要针对iPhone手机)在80%以上则为正常。以下是详细说明:  1、苹果的保修规定,如果苹果手机在一年的保修时间内或者在AppleCare计划的保修范围内,电池蓄电量只有原始容量的80%或以下可以前往Apple Store或Apple授
手机市场最新销量排名出炉,苹果抢下第一!手机销量「手机市场最新销量排名出炉,苹果抢下第一!」
1月26日,市场调查机构Counterpoint Research公布了2023年第4季度我国智能手机销量报告。报告显示,2023年第四季度,中国智能手机销量同比增长6.6%,为两年多来首次实现季度增长。苹果占据榜首,小米和华为紧随其后,第三季度至第四季度,
华为畅享70X预售:2025年首款麒麟手机,巨鲸电池和光影摄影引关注最新款华为手机「华为畅享70X预售:2025年首款麒麟手机,巨鲸电池和光影摄影引关注」
2025年1月3日,华为将正式开始其新款手机——华为畅享70X的预售。这款手机不仅是华为2025年的首款麒麟处理器设备,也是重返市场的热门产品,备受消费者期待。根据华为商城的预告,畅享70X将会在外观和性能上都带来显著的提升,吸引了众多用
腾讯手机管家:保护您的手机安全手机管家「腾讯手机管家:保护您的手机安全」
简介:腾讯手机管家:保护您的手机安全工具原料:系统版本:Android 10品牌型号:华为P40 Pro软件版本:腾讯手机管家v8.5.01、腾讯手机管家是一款专业的手机安全软件,旨在保护用户的手机安全。2、它提供了全面的手机安全防护功能,包括病
7寸大屏手机推荐
  《7寸大屏手机推荐》  随着移动互联网的普及,大屏手机成为了越来越多人的选择。今天,我们将为大家推荐几款7寸大屏手机,以满足广大用户的需求。  一、华为Mate 40 Pro这款手机采用了全新的设计语言,拥有极高的辨识度。其屏幕大
手机如何与电视连接手机电视「手机如何与电视连接」
在数字化时代,将手机与电视连接已成为许多家庭享受多媒体内容的常见方式。本文将为您介绍几种主流的手机与电视连接方式,帮助您轻松实现手机内容的大屏展示。一、USB连接方式对于支持USB播放的电视,您可以使用USB数据线将手机与电视相连
离不开手机是什么病手机病「离不开手机是什么病」
在数字化时代,手机已成为我们生活中不可或缺的一部分。然而,当对手机的依赖达到一定程度时,就可能演变为一种心理现象,甚至可能是一种病症。那么,离不开手机到底是什么病呢?**一、过度依赖手机的心理状态**当我们发现自己频繁查看手机
手机的NFC有什么用 手机NFC功能介绍手机nfc「手机的NFC有什么用 手机NFC功能介绍」
  现在主流的旗舰手机基本都配备了NFC功能,但很多人还不懂手机的NFC有什么用?本次就带来手机NFC功能介绍,这里一起来看看。  1、 公交卡充值   第一个当然是公家卡充值,开启NFC 功能,通过支付宝/微信,将公家卡片(北京地区)贴近后
手机录屏在哪里找手机录屏「手机录屏在哪里找」
在智能手机日益普及的今天,录屏功能成为了许多用户日常操作中的一项实用工具,无论是记录游戏精彩瞬间、制作教学视频还是保存直播内容,录屏都显得尤为重要。那么,如何在不同品牌的手机上找到并使用这一功能呢?以下是一些常见操作路径的
相关文章
推荐文章
发表评论
0评