Skip to content

Chooser / Resolver · 选择器存根 ​

源码路径

stub/ResolverActivity.java · ChooserActivity.java · ChooseTypeAndAccountActivity.java · ChooseAccountTypeActivity.java(目录)

这四个存根是系统选择器(Intent 选择 / 账户选择)在虚拟环境下的替代实现。虚拟 App 触发 createChooser、newChooseAccountIntent 时,真实系统的选择器会暴露宿主身份或路由错误,VirtualXposed 用自己的存根重放这些交互。

类族 ​

类作用
ResolverActivity处理隐式 Intent 多目标选择(系统 ResolverActivity 的虚拟版)
ChooserActivityChooserActivity extends ResolverActivity,支持带 extra 数据回传,EXTRA_DATA/EXTRA_WHO/EXTRA_REQUEST_CODE 携带虚拟上下文
ChooseTypeAndAccountActivity选账户类型再选账户(AOSP 同名 Activity 虚拟版)
ChooseAccountTypeActivity选账户类型,自带 AccountArrayAdapter 列表 UI

ChooserActivity 的虚拟 extra ​

java
public static final String EXTRA_DATA = "android.intent.extra.virtual.data";
public static final String EXTRA_WHO = "android.intent.extra.virtual.who";
public static final String EXTRA_REQUEST_CODE = "android.intent.extra.virtual.request_code";

这些 extra 把虚拟 App 的调用上下文(谁发起、原始 requestCode)带进选择器,选择完成后回传,确保 onActivityResult 路由正确。check(Intent) 判断一个 Intent 是不是虚拟 chooser 请求。

关联 ​

基于 VirtualApp 与 epic,仅供学习研究。VirtualApp 禁止商用。