请问如何在 ActivityManagerService 里解析 Intent 传送得序列化对象?

2021-03-18 16:04:17 +08:00
 SakuraOjosama

笔者最近在做某项功能,需要在 ActivityManagerService 里面,根据 Intent 传输的某些数据,对这些数据进行相应的处理 1.Intent 为第三方应用发起,无权修改第三方应用的发起阶段 2.避免在 framework.jar 里做过多修改,逻辑处理全部放 services.jar 3.Intent 发起的数据为 Parcelable 对象

随即就碰到了问题,在 Instrumentation.java 下获取是通过 ActivityManager.getService()直接获取 ActivityManagerService,并调用 startActivity 方法切入 services 进程,中间涉及到 Binder 通信,在 startActivity 之前,通过调试 framework.jar, Intent 下面是有数据的,但还没有转化为 mParcelData,一旦切入 ActivityManagerService 后,调试 services.jar ,发现虽然 mParcelData 不为 null,但通过 intent.getExtras().getMap()获取到的 Map 大小为 0,

很奇怪的是,当 Intent 的目标 Activity 起来时,Intent 所携带的数据又能正常读出来,而在 ActivityManagerService 却无法读到

请问各位老哥,在切换到 ActivityManagerService 后,这 Intent 里面带的数据,没有存放在 Intent 里面吗?改如何读取到这部分数据呢?

553 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/762868

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX