我正在使用“嵌入式Android”一书。
我正在使用AOSP(4.0.3_r1)制作新的系统服务
我希望我的系统服务在 frameworks / base / core / java / android / content / app / ContextImpl.java 中注册,以便我可以通过getSystemService()
方法使用它。
问题是,我在 内容 下找不到 app 文件夹:
androidroot /框架/碱/核心/ JAVA /机器人/ 内容/应用 /ContextImpl.java
但是,我发现它:
androidroot / frameworks / base / core / java / android / app / ContextImpl.java
这两个文件是否相同?或者只是缺少(内容/ app 文件夹)?
有什么想法吗?
答案 0 :(得分:0)
您需要使用包含所有系统服务名称的SystemServer
。
你应该检查这个链接:
http://processors.wiki.ti.com/index.php/Android-Adding_SystemService
答案 1 :(得分:0)
卡里姆写的主要是针对Android 2.3.4版本。从这个时候可以改变一些东西。这是一个已经改变的例子。
这两个文件是否相同?还是只是缺少(内容/应用程序文件夹)?
这些是相同的文件。
知道该怎么做?
正如我所说,实施已经改变。我查看了代码,在这里你可以改变什么来使代码工作(我只能假设因为我实际上没有构建我的代码)。在ContextImpl类的static
块中,您需要添加以下代码:
registerService(ACCOUNT_SERVICE, new ServiceFetcher() {
public Object createService(ContextImpl ctx) {
IBinder b = ServiceManager.getService(OPERSYS_SERVICE);
IOpersysService service = IOpersysService.Stub.asInterface(b);
return new OpersysManager(service);
}});