当前位置:   article > 正文

【Android架构Telephony篇】数据业务(2)RILJ_android telephony tracker架构

android telephony tracker架构
  1. Android: 6.0
  2. Desktop: Ubuntu 15.04
  3. 更新日期:2017-04-28
http://blog.csdn.net/u013686019/article/details/49719897

Telephony的Overview见:

【Android架构Telephony篇】数据业务(1)总览

一、Telephony整体流程

Telephony执行的完整流程如下:


下面自上而下,只关注主干,分层看下代码走向。


二、Telephony数据业务的RILJ层

1、App层

用户点击系统【设置】进行开启/关闭数据业务,调用:

  1. DataUsageSummary.java (packages\apps\settings\src\com\android\settings)
  2. private void setMobileDataEnabled(int subId, boolean enabled) {
  3. mTelephonyManager.setDataEnabled(subId, enabled);
  4. }

TelephonyManager作为"phone"系统服务的管理类,其获取方式可以:

  1. DataUsageSummary#onCreate()
  2. -->mTelephonyManager = TelephonyManager.from(context);
  3. TelephonyManager.java (frameworks\base\telephony\java\android\telephony)
  4. public static TelephonyManager from(Context context) {
  5. return (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
  6. }


在上图中,把"phone"系统服务获取放在了frameworks层,这是因为在frameworks中可以越过Manager类直接获取服务,如:

  1. TelephonyManager.java (frameworks\base\telephony\java\android\telephony)
  2. private ITelephony getITelephony() {
  3. return ITelephony.Stub.asInterface(ServiceManager.getService(Context.TELEPHONY_SERVICE));
  4. }
  5. public void setDataEnabled(int subId, boolean enable) {
  6. ITelephony telephony = getITelephony();
  7. telephony.setDataEnabled(subId, enable);
  8. }

Telephony提供的操作无线模组的方法可以通过ITelephony.aidl文件查看:
frameworks/base/telephony/java/com/android/internal/telephony/ITelephony.aidl


2、Framework层

(1)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/386562
推荐阅读
相关标签
  

闽ICP备14008679号