市面上很多双卡机型,所以应用中如果有于sim卡有关的功能都需要适配。
android源码里只支持单卡,双卡是各个厂商在源码基础上扩展的。所以要适配,只好针对不同厂商的不同机型逐一进行。
适配基本步骤:
拿到一台双卡手机后,连上adb shell 查看一下注册的服务:
service list
在服务列表里找到phone 和sms相关的服务。phone、phone2、isms、isms2之类。
有的双卡只有一个phone,有的会有两个。不管几个,先写个测试代码,获得他们的服务实例。
以电话适配为例,先获得电话服务中的一个:
Object mTelephonyManager = mContext.getSystemService("phone2");
获得实例后,利用反射,查看实例的类名和所有public方法:
if(mTelephonyManager !=null){
Method[] ms = mTelephonyManager.getClass().getMethods();
Loge(mTelephonyManager.getClass().getCanonicalName());
for(Method m:ms){
Loge(m.getName()+" "+m.toGenericString()+" "+m.isAcc