1. 回顾service
- 开启服务
- 绑定服务
- 调用服务中的方法
- 解绑服务
- 关闭服务
2. 远程服务调用代码具体实现步骤
第一步 :
在远程 service 中去编写一个内部类,让这个内部类集成 Binder,实现 IService 接口,把 IService 接口声明出来 MyAgent extends Binder impelements IService第二步 :
将 IService 接口中的public,private给干掉.并且将扩展名改为.aidl
|
|
- 第三步 :
回到 service 中的内线类,将其改为继承 IService.Stub类
|
|
- 第四步 :
在这个内部类中实现的方法中去调用服务中的方法
|
|
- 第五步 :
回到远程的调用者应用中, bindService,写法与之前一样.
|
|
- 第六步 :
编写绑定服务的时候,建立的通信频道 MyConnection
|
|
- 第七步 :
在 MyConnection 的方法中,onServiceConnected 中强制类型转换 service 为内线.
|
|
- 第八步 :
通过内线调用服务中的方法
|
|
3. 杂谈题
android 中如何实现 ipc 通信?
常规的情况下,A应用去激活B应用中的组件的时候,这实际上是一个ipc通信的体现,这个时候发送是Intent就是在做ipc通信,intent也是去实现paraceable接口的,ipc通信时传递的非8种基本类型都需要去实现这个接口,如果是进程间通信,除了使用intent之外,还可以使用远程服务调用,谷歌已经对应用中提供了aidl技术技术供应用之间进行通信.
4. ContentProvider 的学习
内容提供者 : 用来提供数据.
4.1 插入删除数据到系统的短信数据库中
- 先声明读写sms权限
|
|
- 插入和删除短信的编写
|
|
4.2 手机监听器的实现
- 先开启相应的权限
|
|
- 启动服务
|
|
- 实现服务类,先监听电话后实现通话录音
|
|
- 务必指定服务对象(启动的服务是从哪里启动的?)12345<service android:name=".PhoneService"><intent-filter><action android:name="com.vrwait.recoder"></action></intent-filter></service>