码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 从一个APP启动另一个APP的activity的方式


    从一个APP启动另一个APP的Activity的方法

    1、通过自定义action启动

    这种方式只需要在代码中设置一个action即可, 系统会自动过滤去找到这个action所对应的Activity

    当前APP的代码

    1. Intent intent = new Intent();
    2. //这里是采用的自定义action
    3. intent.setAction("transBundle.app");
    4. startActivity(intent);

    待启动APP 的activity在AndroidManifest.xml中的配置

    1. <!- 需要配置对应的自定义action->
    2. <activity
    3. android:name=".MyActivity"
    4. android:label="@string/app_name"
    5. android:exported="true">
    6. <intent-filter>
    7. <action android:name="transBundle.app"/>
    8. <category android:name="android.intent.category.DEFAULT"/>
    9. </intent-filter>
    10. </activity>

    2、通过在Intent中通过指定包名和类名来查找

    直接在当前APP中写以下代码,即可打开指定APP的activity

    1. ComponentName componetName = new ComponentName(
    2. "com.poynt.weibo", //这个是另外一个应用程序的包名
    3. "com.poynt.weibo.ui.IndexActivity"); //这个参数是要启动的Activity的全路径名
    4. try {
    5. Intent intent = new Intent();
    6. intent.setComponent(componetName);
    7. startActivity(intent);
    8. } catch (Exception e) {
    9. Toast.makeText(getApplicationContext(), "可以在这里提示用户没有找到应用程序,或者是做其他的操作!", 0).show();
    10. }

    3、通过scheme启动

    其实这个方法和方法1类似, 只是说增加了scheme参数, scheme更多的用于 在网页或者H5上来启动我们的APP, 比如在手机官网上通过scheme可以直接打开我们的app, 这里我们只是从APP用scheme启动另一个APP

    当前应用的代码:

    1. Uri uri = Uri.parse("app://my.test");
    2. Intent intent = new Intent("transBundle.app", uri);
    3. startActivity(intent);

    待打开APP的AndroidManifest配置

    1. <activity
    2. android:name=".MyActivity"
    3. android:label="service"
    4. android:exported="true">
    5. <intent-filter>
    6. <action android:name="transBundle.app"/>
    7. <action android:name="android.intent.action.VIEW"/>
    8. <category android:name="android.intent.category.DEFAULT"/>
    9. <data android:scheme="app" android:host="my.test"/>
    10. </intent-filter>
    11. </activity>

    其中app类似于http://www.baidu.com中的 http, 表示传输协议; my.test类似于www.baidu.com, 表示主机名

  • 相关阅读:
    D9741——用于也收路像机和笔记本电的等设备上的直流转换器。在便携式的仪器设备上。低电压输入时误操作保护电路, 定时闩锁、短路保护电路等功能
    为什么要用 B+ 树,而不用普通二叉树?
    初步读懂linux内核结构
    Servlet
    JAVA实现兔子问题--递归
    CRM客户管理系统英文专业版
    ARM-A架构入门基础(二)异常处理
    pytorch 读写文件
    亚马逊云科技打造SAP核心业务系统上云最佳实践,加快业务转型和价值实现
    Perl5和Perl6对比使用Sigils的差别
  • 原文地址:https://blog.csdn.net/eeeeety6208/article/details/125401981
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号