You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发:如何通过隐式Intent在自研APP间跳转至指定Activity

解决方案

1. 修复克隆APP中MainActivity2的可访问性配置

当前android:exported="false"会导致第三方APP无法启动该Activity——跨应用调用的组件必须设置exported="true",否则Android系统会拦截外部访问请求。修改后的Activity配置如下:

<activity
    android:name=".MainActivity2"
    android:exported="true" >
    <intent-filter>
        <action android:name="com.action.ex3.register" />
        <data android:mimeType="text/plain"/>
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

2. 修改第三方APP的按钮点击逻辑,添加应用选择器

直接调用startActivityForResult不会弹出选择器,需要通过Intent.createChooser()强制系统展示所有匹配Intent的应用选项,同时要补充Intent的MIME类型以匹配克隆APP的过滤器规则。修改后的代码:

findViewById<Button>(R.id.reg_btn).setOnClickListener {
    val intent = Intent("com.action.ex3.register")
    // 匹配IntentFilter中设置的mimeType,确保系统能找到对应Activity
    intent.type = "text/plain"
    // 创建选择器并指定标题
    val chooserIntent = Intent.createChooser(intent, "选择要跳转的应用")
    startActivityForResult(chooserIntent, 2)
}

关键细节说明

  • exported属性:跨应用启动的组件必须设置android:exported="true",否则会触发SecurityException,阻止外部访问。
  • Intent匹配规则:Intent必须设置与克隆APP中<data>标签一致的MIME类型,否则系统无法识别到符合条件的Activity。
  • 选择器强制触发:Intent.createChooser()会绕过系统默认应用设置,强制弹出包含所有匹配应用的选择界面,满足你的需求。

内容的提问来源于stack exchange,提问作者Mostfa Mostfa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 11:42:43