腾讯优测优分享干货精选| Android双卡双待适配——隐藏在数据库中的那些秘密...

news/2023/12/9 16:26:02

摘要:android双卡数据库适配是常见的适配难题,腾讯优测是app自动化适配测试平台,提供APP兼容性适配测试,远程真机租用等多维度的测试服务,为大家奉上“优分享”-腾讯内部的移动研发测试干货精选~
关键词:数据库适配,双卡适配,移动研发,android适配

许多APP都希望获取用户通讯录联系人,利用通讯录关系链信息来丰富产品功能。在读取系统联系人数据库的ContentProvider时,对于双卡双待手机,电话和短信数据都需要标识来自哪张卡。
Android 5.0开始加入Dual Sim支持,Android 官方方案和mtk的方案十分类似,感兴趣的小伙伴可以直接移步mtk方案实现方式。

双卡数据库适配流程

根据系统ContentProvider数据内容来做适配开发,找到区分双卡的标识字段和字段对应的值。为了以下阐述内容清晰,这里约定:主卡—0卡,副卡—1卡。
主要涉及的数据库表有两个:短信彩信、电话。

1.清空数据库

如果手机安装了安全软件有可能”污染“数据库数据,清空数据库中的数据可以保证以下操作的准确性。

2.使用系统短信程序和拨号程序分别使用1卡、2卡发送短信,拨打电话

保证使用的是系统短信和拨号程序,第三方APP会接管系统程序,开始操作前需卸载第三方APP。

3.读取数据库值,找到区分卡槽的值

对于可以root的手机,可以直接找到对应的数据库文件,导出后使用SQLite查看器来查询数据库中的值。
短信、彩信数据库位置:
/data/data/com.android.providers.telephony/mmssms.db
电话数据库位置:
data/data/data/com.android.providers.contacts/contacts2.db

注意:对应的.db-wal、.db-shm文件也需要导出,SQLite引入了日志预写模式(WAL),如果不导出这两个文件,数据更新不及时。

双卡数据库适配常见类型都有哪些?

1.新增标识字段

常见于:三星、moto等
举例:手机的短信数据库

通过上图,我们可以知道短信数据库表中:
标识双卡的字段名:sim_id,字段的值:卡0—-0 || 卡1—-1
这种情况相对简单,在做短信、电话相关的APP只需要:
(1)确定对应的卡槽
(2)需要数据库操作时,增加一列对于双卡标识字段的操作

2.mtk系列芯片新增siminfo表

常见于mtk系列芯片的手机
现象:
按照1中的方法找到了区分卡槽的字段和值,发现当用户换卡时,标识字段对应的值会随着变化,每换一张新卡,对应的simId值+1。
问题原因:
如下图所显示,这类手机新建了一张表,用来记录SIM卡的信息。对应的uri为:Uri uri = Uri.parse(“content://telephony/siminfo”);
解释:
slot字段值为0:主卡
slot字段值为1:副卡
slot字段值为-1:此卡没有安装在卡槽

如下图,sms表和siminfo表的映射关系。sms表中的simId字段存储的是siminfo表中对应的_id,siminfo中对应的0,1是卡槽的标识。
注意:siminfo表是系统维护的,第三方APP只需读取,不需要进行“写”操作。

解决办法:
(1)确立映射关系
在一定的触发时机(应用启动,监听iteminfo数据库信息变化),触发iteminfo表的查询,将查询结果建立成映射关系。
0—-4
1—-3
(2)需要操作时根据卡槽获得映射值写入db

mtk在双卡双待方面的积累是很深厚长久的,在功能机时代就有非常广泛的应用。那么为什么还要如此麻烦的新建一张表来做这个映射呢?为什么不使用方案1 简单的处理呢?

场景:
使用1中数据库新增字段的方法,对于WCDMA联通定制机(同时G卡制式),如果用户将两张卡对调位置,将会发生什么情况?
在方案1中,所有的信息直接和sms表中的双卡标识字段绑定,如果换卡的话将无法判断信息来自那个SIM卡,在上述的场景发生时,用户所有的信息和SIM卡发生混乱。
在方案2中,因为sms和siminfo存在映射关系,siminfo表中的icc_id可以唯一标识一张SIM卡,不会发生方案1中出现的换卡可能造成的信息错乱问题。
思考总结:
方案2的存在是合理的,因为方案1同时存在缺陷。

3. coolpad系列手机新增iteminfo表

常见于:酷派系列手机
特殊点:root没有成功,无法查看data/data目录下内容
电话数据库适配:
使用查询数据库的工具

清空db后操作:使用0、1卡分别向5520拨打电话,使用0卡向10010拨打电话。通过记录的查询结果可知,电话标识字段为moduletype,字段对应的值为0—–1 || 1——2
短信数据库适配:
清空db后向5520发送4条短信,见下图:

当使用查询工具查询结果时,会出现下图的情况,其中sim_id通常在方案1中作为双卡标识的字段,但是在这款手机上值均为-1。(可以注意到iteminfo字段中的值时累加的1、2、3、4)

查询iteminfo数据库表的结果:Uri.parse(“content://mms-sms/itemInfo”);

数据库表关联关系:

适配方法:
(1)每次在sms表插入一条数据,iteminfo会对应的增加一条记录,这个是由系统provider自动完成的。
(2)需要更新iteminfo中的数据中的network_type字段值来标识卡槽。
总结:
不仅系统联系人需要数据库适配,当APP开发过程中使用到系统数据库的时候,可能也会遇到类似的适配问题。这时,也可以使用类似的方式处理。

文/腾讯优测 李艳超


http://www.ppmy.cn/news/156079.html

相关文章

柠檬双核216双卡双待手机,柠檬双核216(D216)价格

柠檬双核216双卡双待手机,柠檬双核216(D216)价格 柠檬双核216:柠檬双核216是最近推出的柠檬。柠檬双核216,也被称为柠檬D216双卡双待(GSM)的手机,1.8英寸的TFT显示屏。柠檬双核216双…

Android 5.1双卡打电话发短信的实际应用

最近开发中遇到了双卡的问题,关于双卡查看了好多文章,但是没有一个能解决问题的,要么就是定制的或者有厂商提供支持的,我这里是基于Android5.1.1实现的双卡发送短信,这里需要用的反射,下面直接上代码&#…

【腾讯优测干货分享】Android5.0-6.0双卡适配指南

作者:腾讯优测开发工程师 于长敏 这里仅以获取sim卡的IMSI接口(getSubscriberId)和发短信接口(sendTextMessage)为例来详细讲解一下Android5.0-6.0双卡适配的策略,其他方面的双卡适配方案跟4.4以前相比并无特别大的区别,之前我们已有专家对此…

6.5寸,双卡双待,廉价机,带不来惊喜的苹果,还能撑多久

苹果的发布会落幕了,相比6.5寸大屏,双卡双待,廉价机,AR功能等诸多功能介绍,没有惊喜实际上才是这届发布会的主题。 新款iPhone售价 诚然,苹果依然很强,无论是销量还是股价。就像上面网友所说的&…

iphone11系列的尺寸_还有必要吗?iPhone 11系列终于要全家族支持双卡双待了

随着三星Galaxy Note10系列的陆续在国内外亮相,越来越多的用户将目光集中在了三星的老对手苹果的新一代iPhone身上。根据此前爆料,全新的iPhone新机将同样提供三个版本,并将采用全新的命名方式,分别被称为iPhone 11、iPhone 11 Pr…

腾讯优测优分享干货精选| Android双卡双待适配——隐藏在数据库中的那些秘密

腾讯优测是专业的app自动化测试平台,除了提供兼容性测试,远程真机租用等多维度的测试服务,还有优分享-腾讯内部的移动研发测试干货精选~ 许多APP都希望获取用户通讯录联系人,利用通讯录关系链信息来丰富产品功能。在读取系统联系人…

iPhone 双卡双待时代即将来临?

中国互联网市场这块『肥肉』,不止国内大小企业想分一杯羹,就连国外的科技巨头们也垂涎已久。为适应本土化,双卡双待的 iPhone 即将来临,是真的吗? 来源:9to5mac 近日,打不开的 404 公司们即将卷…

iqooneo5支持鸿蒙系统吗,iqooneo5活力版有双卡双待吗_iqooneo5活力版支持5g吗

iqooneo5活力版是一款即将上市的中高端手机,很多人对这款iqooneo5活力版手机的各方面配置都很关注,那么这款iqooneo5活力版支持双卡双待吗?iqooneo5活力版支持5g吗?接下来一起来看看吧~ 一、iqooneo5活力版有双卡双待吗 iQOONeo5活力版支持5G,并且支持双卡双待。 网络参数 …

android 双卡 双待机型适配

通过对国内,国外众多双卡机型的适配,已经不再相信这个世界了,林子大了什么鸟都有,呵呵 moto htc,三星机型相对稳定 国内的联想,华为,中兴,酷派等机型已经到处乱改,改的…

腾讯优测优分享 | 双卡双待-工程师难言的痛

腾讯优测是专业的移动云测试平台,提供全面兼容性测试,远程真机租用,漏洞分析等多维度的测试服务,让测试更简单!【引子】移动互联网的时代,手机通讯录是天然的强社交关系的关系链,如果打通产品关…

双卡双待(二)

前言: 在上一篇的双卡双待(一)中介绍了双卡双待的基础知识,实际项目中不一定会用到,如果你的项目中需要涉及到双卡双待,本篇博文可能会对你有帮助! 1.识别通话记录来自哪一张sim卡 关键代码&…

Android 双卡双待

转自这里 一、双卡双待背景分析 用户为了兼顾运营商优势,使用双卡双待手机: 双卡双待这项技术在发展中国家使用很普遍,因为在发展中国家电信运营商发展不够成熟,相关管理制度不完善。从用户的角度出发,主要考虑资费问题…

诺基亚215 4G支付版上市,预售279元,长辈出门也无需现金了!

整理 | 祝涛 出品 | CSDN(ID:CSDNnews) 10月26日,诺基亚手机官方微博宣布诺基亚215 4G支付版正式上市,支持双卡双待 4G 全网通、VoLTE 高清语音、支付宝、喜马拉雅听书。诺基亚宣称“无需现金、不用找零,帮…

诺基亚5320软格

*#7370#   恢复出厂设置(软格机),这个命令一般是在手机处于错误或系统垃圾过多的情况下使用格机命 令,格机前可以通过第三方软件或6600PC套件备份一下你的名片夹或需要的资料,格机时一定要保持电量充足,不…

再见,诺基亚。你好,爱立信。

2010.10.11 - 2013.11.29,这是我在诺西(NSN)工作过的三年时间。时间飞逝,以此文纪念这段岁月。 入职回顾 现在还清晰记得当时诺西打电话通知发我offer的情形。当时正站在所里的楼下,听到这个消息,欣喜之余,也算是意料之…

NOKIA 5110屏幕驱动

前言 诺基亚5110的屏据说是从旧手机上扣下来的,但是但是,好歹是一块串口屏,且驱动简单,所以还是记录一下。 硬件准备 NOKIA 5110屏幕模块; 补充说明 诺基亚神屏由SPI方式驱动,这里我们用软件模拟的方式…

诺基亚智能手机E60精彩屏幕截图

E60屏幕:2.1寸 1600万色 352416象素 以下图片全部是liigo亲自截图,转载请注明出处:http://blog.csdn.net/liigo/archive/2006/09/02/1157107.aspx 桌面: 主菜单(十二宫格): 工具菜单&#xff1…

诺基亚之死

第一财经周刊:诺基亚之死 诺基亚的董事会大概也没有想到,即使预计到了困难,即使想到了战略上的调整,即使决定换帅,但时间对于诺基亚来说还是过于严酷了一点。 大公司更换CEO至少需要一年的时间,这包括猎头…

Nokia 5110 LCD资料

NOKIA 5110 LCD学习摘录 1.基本原理 Nokia5110是一款经典机型,由于较经典,旧机器很多,所以很多电子工程师就把旧机器的屏幕拆下来,自己驱动Nokia5110,用于开发的设备显示。取代LCD1602。5110采用84x48 的点阵LCD&…

诺基亚十大经典机型

芬兰巨人诺基亚从来就不乏拥趸者。它凭借着独特的魅力在迷倒了众人的同时,也创造了很多的经典。下面我就列出我心中的十大经典机型。 第十名:诺基亚3210(2000上市) 其实我对3210有着很深的感情,因为它是我真正…
最新文章