android平台双卡适配
来源:互联网 发布:淘宝 一元起拍入口 编辑:程序博客网 时间:2024/06/15 22:33
市面上很多双卡机型,所以应用中如果有于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.isAccessible());}}可能也需要查看getDeclaredMethods()的结果。
在所有方法里查找要用的方法,比如注册监听用的listen(),操作电话的endcall()等等。
然后,利用反射,调用相关的方法,查看功能是否正常。
因为是对android源码的扩展,所以基本方法名应该不会有太大改变,只是类名和参数会有不同,所以操作上,除了要利用反射来调用相应接口以外,其他都与android单卡平台的操作方法类似。
因为短信的接收是利用广播intent来处理的,所以在截获短信的intent后,将intent的extra值都打出来分析一下,很容易就得到和双卡有关的信息,从而适配双卡收信。发短信就需要利用服务和接口反射了。
业务部分适配好后,还需要看一下数据库的信息,数据库中可能存有卡槽id等信息,获取完整的数据库信息(短信或者通话日志),分析列名和值,就可以知道于双卡有关的列名,然后针对特殊列名进行适配。
- android平台双卡适配
- Android平台
- Android平台
- Android 平台
- Android平台
- Android平台简介
- Android平台内核编译
- Android平台内核编译
- 移植心得---android平台
- android平台现状分析
- Android 平台介绍
- x86平台编译Android
- android平台初步分析
- Android开发平台部署
- 移植心得---android平台
- android调用平台功能
- Android平台触摸屏设计
- android调用平台功能
- (转)MotionEvent事件在onInterceptTouchEvent()、onTouchEvent()中的传递顺序
- 浅谈android的selector背景选择器
- 使用gtest对类进行白盒测试
- windows下使用PHP实现定时执行脚本
- C#中的Asc、Chr、CStr、InStr、Mid函数
- android平台双卡适配
- 使用钩子参与到TCP拥塞事件的处理中
- 查找、去除表中重复记录
- firefox性能优化
- php定时执行任务的几个方法
- 先分享一个类:用于文件操作的,使用很方便
- sleep和wait的区别(转)
- 【Windows事件日志】【WindowsServer2003】Kerberos_4 N/A
- 【索引分类】索引组织表