
Android
文章平均质量分 93
Android
达帮主
通信协议 , C/C++ , Andriod , JAVA
展开
-
彩信发送笔记
一. 彩信发送: 彩信比短信麻烦很多。从sendMmsWorker函数的参数就可以看出来:(conv, mmsUri, persister, slideshow, sendReq) 上下文,uri,PduPersister(彩信是用pdu的),slideshow 包含了所有的彩信信息,sendreq包含了mime封装mms时的headers,也包括了from,to等信息 。(1)函数 se...原创 2020-07-14 15:25:43 · 1547 阅读 · 2 评论 -
Telephony Phone与system链接监听关系(9.0源码)
首先了解Phone 与 system是什么 ,我在网上找了一张图片先了解一下设计图: Dialer(dialer进程 )拨打电话的入口,来电不会经过Dialer。但是拨打电话的出口不光是Dialer,在联系人和短信里也有拨打电话的出口。 InCallUI (dialer进程) 负责显示通话界面的信息,来电信息。 Telecomm(system_process和tel...原创 2019-09-20 19:19:24 · 652 阅读 · 3 评论 -
Phone拨号调起InCallUi流程(Phone 9.0 )(Phone调用InCallUi流程)
Phone调用InCallUi流程流程图主要的类以及作用DialerDialer\com\android\dialer\app\dialpad\DialpadFragment.java 拨号键盘Dialer\java\com\android\dialer\util\DialerUtils.java 拨号工具Dialer\java\co...原创 2019-09-16 21:16:56 · 6862 阅读 · 6 评论 -
Android9.0 SIM卡初始化---更新数据
Sim卡初始化启动过程中初始化 SIM卡的一些相关数据主要的类及其作用:PhoneGlobals : 里面的OnCreate直接调用了 PhoneFactory.makeDefaultPhones(this);PhoneApp : TelephonyServer 入口里面初始化了两个对象一个是PhoneGlobals TelephonyGlobalsUiccController:...原创 2019-09-11 16:31:34 · 7446 阅读 · 11 评论 -
多线程wait、notify、sleep、join、yield、synchronized关键字 深入了解线程(Thread)
线程工作快一年了,对线程老是躲来躲去只要是线程出现的ANR就会避让,看来这种态度还是不行,如果在这样下去只会是一个普通,打工仔,花店时间写DOME吧1 . Thread是个线程,而且有自己的生命周期2. 对于线程常用的操作有:wait(等待)、notify(唤醒)、notifyAll、sleep(睡眠)、join(阻塞)、yield(礼让)3 . wait、notify、notify...原创 2019-08-23 16:20:23 · 617 阅读 · 3 评论 -
android 信息(mms)开发(八)-- 彩信的解析
本文要讲述是第二次解析--解析彩信正文,先贴张图见识下我们要解析的东东是个什么样子,见下图,初次见面和看天书差不了多少。这个就是我们要面对的数据了,至于怎么拿到这些数据,方法很多,话说不是可以抓网络数据包吗,把完整的网络包拿下来,那里肯定有的。当然如果有相关的源码,抓这些数据更容易了,自已动手试试吧。试之前先一起看看上面这个图吧。000h:8C84 X-Mms-...转载 2019-07-10 18:48:01 · 1255 阅读 · 5 评论 -
android 信息(mms)开发(七)-- sim卡短信
这篇关于android源码是如何操作sim卡上的信息说明,sim\usim卡的信息说起来这算是比较特别的一部分,由于android源码的信息是没有开机自动导卡信息和联系人的,所以有时会忘掉它的存在应该说关于卡信息操作源码只是实现大部分功能:可以读和删除卡上信息,把信息复制到手机上,但是不能把信息写入卡,这个功能是要我们自己实现的,当然仅仅是实现就好了,毕竟基本的框架google已经写好了...转载 2019-07-10 18:44:01 · 1018 阅读 · 3 评论 -
android 信息(mms)开发(六)-- 收信息
发送过程是分短信和彩信写的,接收过程就写到一起了。至于原因还是从收彩信的流程说起,收彩信时要先收彩信通知,然后再根据通知里的地址再去获取彩信内容,而彩信通知是通过RIL传过来的,其实彩信通知就是一条短信,特别之处这个短信是带端口的。所以收短信和收彩信在最开始时候走的代码是一样的,还是开始看代码吧,从RIL.java开始,收到从模块报上来的消息,这里还不知道是短信还是彩信,n...转载 2019-07-10 18:37:15 · 549 阅读 · 1 评论 -
android 信息(mms)开发(五)-- 发彩信
发彩信和发短信一样,在ComposeMessageActivity.java界面都是从onclick()、sendMessage()开始,同样的发送前检查收件人是否有效,和短信不一样的是发彩信的时候邮件地址也是可以做为收件人的,接下来也是WorkingMessage.java的send()方法。if (requiresMms() || addressContainsEm...转载 2019-07-10 18:25:28 · 1269 阅读 · 10 评论 -
android 信息(mms)开发(四) -- sms解码的实例
这是独立的一节,关于短信sms解码的一些实际例子,包括收到的短信、发送的短信和短信的状态,网络上的例子比较分散,整理在此以备查找。同时关于短信编解码的官方文档当然是 3gpp的相关文档了,关于短信请参考3gpp 23.040这个文档。1. ---有短信中心号发送0891683108705505F0040d91685111975441f90000117072614105230...转载 2019-07-10 17:54:37 · 439 阅读 · 1 评论 -
android 信息(mms)开发(三) -- 发短信
当你在编辑界面ComposeMessageActivity.java按下发送按钮的那一刻,就开始信息的发送之路。当然发短信和发彩信并不完全一样,会用两篇文章别说明,不过最后的图是画在一起的。从ComposeMessageActivity.java的onclick()开始,在这里对联系人的个数是有个判断的,这个函数isPreparedForSending(),这个判断之后会...转载 2019-07-10 17:50:15 · 941 阅读 · 1 评论 -
Android 信息(mms)开发 (二) -- 存储
关于android存储的有三种方式: SharePrference、文件系统和 数据库,这些信息里都用到了,数据库provider存储短信和彩信的基本信息,SharePrference存储关于信息设置的数据,而彩信中每一个媒体文件则是通过文件保存的。信息的数据库位置 : data/data/com.android.provider.telephonymmssms.db,...转载 2019-07-10 17:41:57 · 686 阅读 · 1 评论 -
Android 信息(mms)开发 (一)
Mms的代码主要分布在packages和Framework两部分,在packages中又分了ui、transaction、model、data和utils几个包(还有其它的,这几个比较重要呀),framework中主要是关于短彩信编解码和RIL部分。这是按着android的代码结构来说的,按功能呢?一个信息应用总是包括信息的编辑、显示预览、收发、编解码和存储。结合代码就是这样的:...转载 2019-07-10 17:37:12 · 596 阅读 · 1 评论 -
Android源码下framework目录结构
转载 2019-06-21 17:45:04 · 2557 阅读 · 1 评论 -
Android Framework目录解析
4、telphony目录文件 描述 CellIdentityCdma //描述电信通信标识 CellIdentityGsm 描述移动通信标识 CellIdentityLte 描述3G通信标识 CellIdentityWcdma 描述联通通信标识 CellInfo 手机信息(什么网络、是否已注册、记录时间) class CellInfo...转载 2019-06-21 17:34:57 · 2148 阅读 · 0 评论 -
Android9.0 Mms (彩信接收步骤,Android9.0版本)
1.彩信接收步骤我们首先看4个类分别是PDU重要的几个类PduPersister 用于管理PDU存储PduParser 用于解析PDUPduComposer 用于生成PDU关键的方法:PduPersister 类PduPersister getPduPersister(Context) Get the objectUri ...原创 2019-06-20 17:36:53 · 3282 阅读 · 12 评论 -
Android源代码结构
Android源代码结构:Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示:.|-- Makefile(全局的Makefile)|-- bionic(Bionic含义为仿生,这里面是一些基础的库的源代码)|-- bootloader(引导加载器)...原创 2019-06-03 16:49:40 · 3303 阅读 · 4 评论 -
Android-MMS中彩信附件的格式及分析
Android-MMS中彩信附件的格式及分析在彩信中附件内容及播放方式是以smil文档格式表示的。下面是一个示例:<smil><head><layout> <root-layout width="320px" height="480px"/> <region id="Image" left="0" top=...原创 2019-06-03 11:02:43 · 1273 阅读 · 1 评论 -
Android(进程通信)AIDL
AIDL在Android中进程通信 直接看代码 ,Dome要讲的是支付宝和淘宝进行支付通信第一步创建AIDL接口// IService.aidlpackage com.android.aidl;// Declare any non-default types here with import statements /** * * @param acc...原创 2019-05-22 16:02:05 · 361 阅读 · 1 评论 -
Android ContentProvider(Android内容提供者,跨进程通讯)
一个程序可以通过实现一个ContentProvider的抽象接口将自己的数据完全暴露出去,而且ContentProvider是以类似数据库中表的方式将数据暴露的。那么外界获取其提供的数据,也就应该与从数据库中获取数据的操作基本一样,只不过是采用URL来表示外界需要访问的“数据库”。跨进程通讯经典 App, Mms , Dialer ,Contact, 比如短信...原创 2019-05-16 11:09:26 · 462 阅读 · 1 评论 -
Android Dialer模块联系人搜索
MTK的Dialer模块联系人搜索拨号搜索机制分为两个部分:引导搜索和搜索。其中引导搜索是指,从用户输入到开始搜索之间的流程,而搜索部分是指,从数据库搜索字符串的过程。一、引导搜索部分默认的拨号界面的布局从上到下主要分为3个部分:显示列表、数字编辑框、拨号键盘。他们的作用是:用户直接在拨号键盘上输入数字,然后数字编辑框显示所输入的数字,同时在显示列表中体...原创 2019-05-09 20:29:45 · 1543 阅读 · 1 评论 -
Android Dialer--通讯整体过程分析
1.1 目录结构packages/apps/Dialer+InCallUI packages/services/Telecomm packages/services/Telephonyframework/base/telecomm framework/opt/telephony(vendor/…/ims Ims Call)>Dial...原创 2019-05-08 19:01:36 · 2481 阅读 · 1 评论 -
Android7.0 Phone应用源码分析(四) phone挂断流程分析
电话挂断分为本地挂断和远程挂断,针对这两种情况各做分析先来看下本地挂断电话的时序图:转载 2019-04-28 15:04:09 · 401 阅读 · 1 评论 -
Android7.0 Phone应用源码分析(三) phone拒接流程分析
转载 2019-04-28 15:03:02 · 218 阅读 · 0 评论 -
Android7.0 Phone应用源码分析(二) phone来电流程分析
当有来电通知时,首先接收到消息的是Modem层,然后Medoem再上传给RIL层,RIL进程通过sokcet将消息发送给RILJ(framework层的RIL),同样进入RILJ的processResponse方法,根据上一章节去电流程的分析得知,来电属于UnSolicited消息,事件ID是...转载 2019-04-28 15:02:08 · 323 阅读 · 0 评论 -
Android Telephony分析
Android Telephony分析https://blog.youkuaiyun.com/linyongan原创 2019-04-28 11:22:43 · 873 阅读 · 0 评论 -
Android7.0 拨号盘应用源码分析(一) 界面浅析
前言android拨号盘的源码目录在package/app/Dialer自7.0以后Incallui的源码直接放到了Dialer目录下,虽然在7.0以前incallui有自己独立的目录,但实际编译过程中只是作为链接库最后还是被编译到Dialer的apk里博主这里只取Dialer相关的源码并导入AS中,并稍作调整兼容至L源码目录结构如下:先理一理各个工程的依赖关系com....转载 2019-04-28 10:48:41 · 1842 阅读 · 0 评论 -
Android电话系统之概述篇
首先抛开Android的一切概念来研究一下电话系统的最基本的描述。我们的手机首先用来打电话的,随后是需要一个电话本,随后是PIM,随后是网络应用,随后是云计算,随后是想我们的手机无所不能,替代PC。但是作为一个电话的基本功能如下:0)拨叫电话,接听电话,挂断电话,发送短信,网络连接,PIM管理1)由于电话运营商为我们提供了呼叫等待,电话会议等补充业务,所以我们的手机需要管理多路通话,...转载 2019-04-28 09:47:18 · 1191 阅读 · 0 评论 -
Android Mms多媒体开发 SlideshowModel
MMS在Android Mms应用里面的具体实现形式,或数据结构是SlideshowModel,它是一个每个节点为SlideModel的ArrayList,SlideModel是一个Model的List,也就是它可以接收任何Model的子类,Audio,Video,Image和Text都可以放到SlideModel上面。 SlideModel主要用于管理其...原创 2019-04-19 18:08:12 · 406 阅读 · 2 评论 -
andorid 打印调用栈
在Android调试过程中经常会出现程序出现的结果不是我们预期的结果,那就需要加Log打印调试,看调用过程是否正确,此时就需要打印程序的调用栈,特别是Android代码相当庞大,打印堆栈更有利于我们分析问题,下面就记录下平时用到不退出程序打印堆栈的方法。验证的方法相关简单,在Activity的类中创建一个方法ThrowException,在onCreate中调用此方法,看打印出什么在and...原创 2019-04-19 15:29:31 · 419 阅读 · 1 评论 -
Android STK APP流程
STK是英文SIM Tool Kit的缩写,简称“用户识别应用发展工具”,是在GSM手机使用超大容量SIM卡中开发的应用菜单。 STK(SIM TOOL KIT),简称“用户识别应用发展工具”,可以理解为一组开发增值业务的命令,一种小型编程语言,它允许基于智能卡的用户身份识别模块SIM运行自己的应用软件。 STK卡不是一般的通常使用的SIM卡,而是基于J...原创 2019-04-16 10:18:03 · 4847 阅读 · 2 评论 -
Android 通信Ril
1总体框架Rild是Init进程启动的一个本地服务,这个本地服务并没有使用Binder之类的通讯手段,而是采用了socket通讯这种方式。Andoid将RIL层分为两个代码空间:RILD管理框架(rild、libril.so),AT相关的xxxril.so动态链接库(libreference-ril.so)。rild把libril.so和libreference-ril.so联系起来...转载 2019-04-12 11:02:52 · 2745 阅读 · 3 评论 -
Android Mms:PDU介绍(协议数据单元)
MMS PDU(Protocol Data Unit,协议数据单元)由MMS头和MMS消息体组成,MMS头由多个域名和域值组成,由客户端指定,MMS头里面的一些域可以被MMS Proxy-Replay修改或补充,MMS Proxy-Replay使用这些头域信息生成MM通知以及构造接收MMS PDU中的相关头域,连同消息实体一同送往接收方。消息体跟在MMS头之后,大多数MMS PD...原创 2019-04-11 11:06:26 · 3157 阅读 · 1 评论 -
Android通知Notification合并问题App的消息通知超过3条时会合并到一起
问题描述: 在Android 7.0以上的版本, 同一个App的消息通知超过3条时会合并到一起, 经过我对部分机型的测试, 目前只发现小米手机在点击合并到一起的消息时会将消息列表展开, 其他品牌都是启动App, 不能跳转到我们需要的指定页面并且消息不会自动消失。解决方案: 针对Android 7.0以上的设备可以采用如下方法强制不合并消息, 亲测有效NotificationCompat....原创 2019-04-06 11:52:38 · 4685 阅读 · 6 评论 -
【Android】Android studio 编译问题:finished with non-zero exit value 2
【Android】Android studio 编译问题:finished with non-zero exit value 2目录1.Android studio 编译问题:finished with non-zero exit value 22.Android studio 编译问题:finished with non-zero exit value 1(由于导入的依赖出现重复造成的...原创 2019-04-04 14:30:55 · 725 阅读 · 1 评论 -
彩信发送流程图
短信的发送流程(framework)一、主要文件/packages/apps/Mms/com/android/mm/transaction/SmsSingleRecipientSender/framework/base/telephony/java/com/android/internal/telephony/ISms.aidl/framework/base/telephon...原创 2019-03-30 19:44:26 · 1519 阅读 · 1 评论 -
发送过程中使用到的google pdu
对于彩信与数据库的交互操作,google并没有将这部分代码放在Mms中,而是放在framework中的pdu部分。具体代码路径是在:opt\telephony\src\java\com\google\android\mms\pdu现在我们来先简单介绍下。从发送彩信过程中需要使用到的类分析。我们从前面博客知道,发送彩信涉及到的Pdu有:SendReqsendReq = makeSe...原创 2019-03-30 14:19:34 · 345 阅读 · 2 评论 -
Android短信开发 发送彩信 ‘ 高通源码 ‘ (彩信发送过程1)
Android彩信发送有下面几个类:一个一个类看:1 . ComposeMessageActivity.java详情页面2 . WoringMessage.java处理一些发送短信-或-彩信方法3.MmsMessageSender.java 彩信入本地数据库4...原创 2019-03-23 18:50:43 · 1104 阅读 · 1 评论 -
Android短信开发 发送彩信 ‘ 高通源码 ‘ (彩信发送过程2)
上一篇内容太多发布失败,分开发布 点击继续 彩信发送过程第一篇Transaction.java这个类主要是sendPdu方法 也挺简单的/* * Copyright (C) 2007-2008 Esmertec AG. * Copyright (C) 2007-2008 The Android Open Source Project * * Lice...原创 2019-03-23 18:49:36 · 583 阅读 · 1 评论 -
短信SMS
Android APK操作短信数据时,不能使用SQLHelper直接操作,需要使用协议,协议使用Uri转义content://sms/inbox 收件箱content://sms/sent 已发送content://sms/draft 草稿content://sms/outbox 发件中content://sms/failed 失败content://sms/queued 待发送数据...原创 2019-03-23 13:48:47 · 613 阅读 · 1 评论