getSystemService与getService区别
来源:互联网 发布:德力西 知乎 编辑:程序博客网 时间:2024/04/26 17:37
Android的后台运行在很多service,它们在系统启动时被SystemServer开启,支持系统的正常工作,比如MountService监听是否有SD卡安装及移除,ClipboardService提供剪切板功能,PackageManagerService提供软件包的安装移除及查看等等,应用程序可以通过系统提供的Manager接口来访问这些Service提供的数据,
大概实现类似TelephoneManager这样的远程服务,但是由于TelephoneManager是已经封装过的代理类,是被谷歌阉割过的服务对象,其中部分方法我们是获取不到的(@hide),所以我们不需要去获取binder,但是对于调用另一个应用的service或者是调用服务中隐藏的方法的时候,需要通过aidl来通信,首先要获取他的Ibinder对象。下面说下获取阉割过的系统服务对象,以Telephony为例
我们发现在TelephonyManager类中的dial()方法是@hide过的(谷歌出于安全考虑,或是二次开发的原因,将这些方法隐藏掉),这就是代理服务的劣势。
下面介绍下通过getService的方式获取系统服务。
public void endCall() {
这种通过反射的方式获取的系统服务能够使用我们的@hide方法。 0 0
- getSystemService与getService区别
- Android获取系统服务getSystemService与getService区别
- Android下getService和getSystemService
- ServiceManager.getService和Context.getSystemService
- getSystemService
- getSystemService
- getSystemService
- getSystemService
- getSystemService
- getSystemService
- getSystemService
- getSystemService
- getSystemService
- getSystemService
- getSystemService ()
- getSystemService
- getSystemService
- getSystemService
- HDU 2191 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活 (背包问题)
- LeetCode: Search for a Range 解题报告
- hihocoder 136 #1269 优化延迟 二分+优先队列
- cocos2dx-lua 对lua项目中class(sub,super)的理解
- 《C++ Primer》读书笔记-第一章 Hello World
- getSystemService与getService区别
- 【C++】浅析C++中的对象模型
- struts2 无法获取action属性的问题解决
- LeetCode 16. 3Sum Closest
- CSS基础{精灵图、梅兰商贸}
- 第五周练习计划
- 三维几何,四面体(压纸器,LA 4795)
- JavaScript 实现面向对象(入门)
- Kafka之sync、async以及oneway