今日科技快讯

有消息称,许多乐视员工的建行龙卡信用卡额度都被调整为1元,建设银行官方给出的理由为“涉及经济案件”。甚至3年前曾服务于乐视的员工,其建行信用卡额度也被调成了1元,这位前乐视员工投诉后建行回应:“该卡留的资料是在乐视,也是为了规避风险。”

作者简介

本篇是 Trilen 的第二篇投稿,分享了双卡下识别IMSI以及发短信的技术,希望对大家有所帮助。

Trilen 的博客地址:

http://blog.csdn.net/u010019468

正文

Android5.0 系统才开始提供对双卡识别支持,提供 SubscriptionManager类 来完成对双卡相关设备信息的读取。在 5.0之前 只能根据机型来适配来获取副卡Imsi,本文重点介绍 5.0之后 的Api以及适配。

SubscriptionManager相关Api介绍

这个类按官方解释就是提供电话 Subscription 相关信息,包括监听,查询 Subscription 总数,激活的总数以及相关详情,常用Api如下(本文源码为API22):

List<SubscriptionInfo> getAllSubscriptionInfoList()

该接口返回全部的 SubscriptionInfo 信息

List<SubscriptionInfo> getActiveSubscriptionInfoList()

该接口返回当前处于激活状态下的 SubscriptionInfo 信息,该类包含几个重点信息如下:

1、mSimSlotIndex:卡槽序号,从0开始,最大为1;即实际中 slot=0 表示 卡1,slot=1 表示 卡2;

查看源码 getSimCount() 实现:发现总数要么是1要是2,2即双卡了

2、mId:即 subId,是唯一的,和 sim卡 Subscription 的身份识别。这个后面发现获取相关信息都是通过传 subId 来对应获取相关卡内容。也可以通过 slotId 来直接获取 subId

public static int[] getSubId(int slotId);

两者对应关系存在,根据 subId 也可以获取 slotId,phoneId

public static int getSlotId(int subId)public static int getPhoneId(int subId)

也可以指定 subId、slotId 返回 SubscriptionInfo

根据对应subId获取SubscriberId(imsi)

Android5.0之后 就开始出现根据 subId 来获取对应 Imsi号,不够没有暴露(hide)接口。暴露的是获取默认的 卡1(slotId=0)的 Ismi

可见 5.0 新增了获取默认 subId 的方法 getDefaultSubscription(),统一都通过 subid 来获取imsi,5.0之前 代码如下:

可以看到 5.0之前 都是直接获取 SubscriberId 不区分 subId 即不分双卡,直接获取 卡1。但我们通过反射方式来获取 卡2 的 Imsi,传对应的 subId 即可:

我们还可以通过 subId 来获取更多关于卡2的相关信息:iccid、SimOperator、NetworkOperator

实现副卡发送短信

Android5.0之前 发送短信代码:

5.0之前 代码如下:

在 5.0之后 的实现会发现

对比 sInstance 初始化的实现发现 SmsManager 在 5.0之后 增加了通过 subid 构造 SmsManager

private SmsManager(int subId) {mSubId = subId;
}

并暴露了通过 subid 来获取 SmsManager对象

所以副卡发送短信,只要获取对应的 SmsManager 即可,其他发送短信接口不变

适配

其实双卡国内手机厂商早就有定制实现双卡,Android系统到5.0才提供识别支持,各大厂商却不统一Api,国内的双卡功能是由厂商联合芯片开发商定做的,所以芯片商不一样,厂商不一样,实现方案也就不一样,所以api也不一样,也是隐藏Api,所以必须反射的不同的类和函数名。总的来说,目前全球有高通(小米),联发科(魅族),麒麟海思(华为),猎户座(三星)四家移动通讯芯片制造商。所以要在低版本的手机上适配

必须一一适配不同手机。可以参考下这篇文章:

http://blog.csdn.net/ymcl_hx/article/details/53484797

更多

每天学习累了,看些搞笑的段子放松一下吧。关注最具娱乐精神的公众号,每天都有好心情。

如果你有好的技术文章想和大家分享,欢迎向我的公众号投稿,投稿具体细节请在公众号主页点击“投稿”菜单查看。

欢迎长按下图 -> 识别图中二维码或者扫一扫关注我的公众号:

Android双卡识别IMSI以及副卡发送短信总结相关推荐

  1. Android 双卡识别Imsi以及副卡发送短信总结

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 Android5.0系统才开始提供对双卡识别支持,提供SubscriptionManager类来完成对双卡相关设备信息的读取.在5. ...

  2. 使用物联网卡发送短信

    从2015年9月1日起 ,购买电话卡需要实名制,也就是说需要本人使用身份证才能购买.但是随着物联网的迅速发展,需要联网的终端逐渐增多.在此环境下,诞生了一种不能电话,不能短信,不需要实名制,只能上网的 ...

  3. 短信截取 android,谷歌Android增加语音操作功能 可语音发送短信

    [赛迪网讯]8月13日消息,谷歌发布Android操作系统的语音指令功能"Voice Actions for Android"并且在博客中发布了一个解释这些功能的视频.Androi ...

  4. Android 双卡发送短信

    场景: 手机中有两张卡时,如何选择由哪张卡发送短信 实现代码: private void sendMessage() {String SEND = "sms_send";Pendi ...

  5. android sim卡 信息,android-如何使用SIM2或双SIM卡提交短信

    我创建了Android短信应用程序 我已经能够顺利发送短信sim卡的短信,则没有报告. 顺利 请帮助我添加其源代码 我的密码 public class MainActivity extends Act ...

  6. android stuido 如何使用SIM2或双SIM卡提交短信

    Android studio 使用默认SIM卡发送短信的代码非常简单 SmsManager.getDefault().sendTextMessage("电话号码", null, & ...

  7. Android之发送短信后按钮(60秒)变灰色每隔一秒递减显示

    无论是做PC端还是android端,每次注册都有发送短信之后,60秒每隔一秒递减显示,如下图 这个地方需要注意的是按钮变灰色之后不能再点击,然后就是android更新UI,需要用handle,或者其它 ...

  8. android之发送短信的方法研究

    android中可以通过两种方式发送短信 第一:调起系统发短信功能:主要代码如下: Uri uri = Uri.parse("smsto:10010"); Intent it = ...

  9. Android APP 如何发送短信?

    权限配置 低级版本的android版本里,使用配置表的方式. 在AndroidManifest文件中配置权限. <!-- 发送消息--> <uses-permission andro ...

最新文章

  1. html5 form表单,html5 教程
  2. Kubernetes — kubectl 的基本使用
  3. little problem
  4. 自然常数 e 的理解与应用
  5. 基站定位php,SIM800C支持基站定位功能了。。。
  6. centOS安装openoffice的方法
  7. 小程序showModal 可配置文字
  8. pythonpil库过滤图像contour_Python之PIL库的运用、GIF处理h
  9. 买不到口罩怎么办?Python 爬虫帮你时刻盯着自动下单!| 原力计划
  10. 爬虫笔记(十)——学会使用Fiddler
  11. Android ListView显示底部的分割线
  12. 〖工具〗Ladon 8.4 Cobalt Strike插件发布
  13. C++ Primer 5th Answers
  14. Nginx支持ipv6
  15. 一文解决scrapy带案例爬取当当图书
  16. 华纳云:香港服务器哪家比较好?
  17. 强大的图片预览组件Viewer.js
  18. 小学生C++趣味编程 2023 01 09 测试
  19. 智能手机拍照及视频DXO mark排名
  20. stl string 源代码分析

热门文章

  1. Apache DolphinScheduler 补数功能应用
  2. WIN10搭建http文件服务器
  3. PHP小旋风站群系统源码
  4. 微信怎么屏蔽朋友圈广告
  5. Linux目录扩容方法介绍
  6. java grpc 服务路由_rpc框架--grpc-java
  7. 一文让你深刻理解什么是suid提权
  8. CSS学习笔记(详细)- 基础
  9. uni-app.07.自动补全插件input-autocomplete的使用
  10. Ray强化学习分布式框架及RLlib