最近在开发过程中,由于遇到发送短信时,卡1不在服务区(香港卡,找不到基站),卡2在服务区(大陆卡),导致默认发送短信时使用卡1,发送失败!
因此对于双卡管理,有一定的必要性,网站查了下,官方是不支持双卡的!
█ 相关资料:
1. android平台双卡适配
android源码里只支持单卡,双卡是各个厂商在源码基础上扩展的。所以要适配,只好针对不同厂商的不同机型逐一进行。 因为是对android源码的扩展,所以基本方法名应该不会有太大改变,只是类名和参数会有不同,所以操作上,除了要利用反射来调用相应接口以外,其他都与android单卡平台的操作方法类似 摘自:android平台双卡适配 - ReV_Fycd的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/rev_fycd/article/details/8788154 |
2.Android如何适配双卡
从Android5.0开始,加入了一系列管理双卡信息的API,也加入了获取各sim卡信息状态以及调用不同sim卡发短信的接口。 平时咱们开发的发短信功能大多数是调用SmsManager类提供的sendTextMessage方法来发短信的,但是对于双卡手机来讲,按照之前常规的方式,只能是通过默认卡发出短信,那该怎么办呢? ● 双卡发短信适配的常规方式 通过subId(卡槽sim卡1和卡2的Id)可以获取到对应sim卡的SmsManager实例,而subId正是通过SubscriptionManager的getSubId方法来获取的,有了对应sim卡的SmsManager实例之后,按照以前的方法通过调用该实例的sendTextMessage方法就可以实现通过不同卡发短信的需求了。 ● 获取IMSI的适配方案 通过phone服务获取TelephonyManager的实例,从而调用这个带参数的getSubscriberId方法来获取对应sim卡的IMSI。 ● 前面两点只是实现双卡需求的一个标准解决方案,最终有些厂家不一定遵守! ● 通过数据库传入卡槽值(sim_id)来查询sim卡的_id值 ● 通过isms服务获取ISms接口的实例,通过调用ISms接口的sendTextForSubscriber方法来实现双卡发短信 |
摘自:Android如何适配双卡 - Android移动开发技术文章_手机开发 - 红黑联盟
http://www.2cto.com/kf/201607/526924.html
3.android 双卡双待手机 发送短信选择卡1还是卡2发送的问题
参考:android 双卡双待手机 发送短信选择卡1还是卡2发送的问题-CSDN论坛-CSDN.NET-中国最大的IT技术社区
http://bbs.csdn.net/topics/390236736
4.国外手机厂商很少生产双卡双待的手机
参考:为什么国外手机厂商很少生产双卡双待的手机? - 用户习惯 - 知乎
https://www.zhihu.com/question/19569142