V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
SakuraOjosama
V2EX  ›  问与答

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

  •  
  •   SakuraOjosama · 2021-03-18 16:04:17 +08:00 · 711 次点击
    这是一个创建于 1346 天前的主题,其中的信息可能已经有所发展或是发生改变。

    笔者最近在做某项功能,需要在 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 里面吗?改如何读取到这部分数据呢?

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2804 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:59 · PVG 20:59 · LAX 04:59 · JFK 07:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.