app 启动第三方应用

方式一:

知道包名和要启动界面的全路径;(清单文件Activity配置中android:name所声明的全路径,同时该界面必须是 export = true)

 Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);
        ComponentName cn = new ComponentName("com.jingdong.app.mall",
                "com.jingdong.app.mall.main.MainActivity");
        intent.setComponent(cn);
        if (intent.resolveActivityInfo(getPackageManager(), PackageManager.MATCH_DEFAULT_ONLY) != null) {//启动的intent存在
            startActivity(intent);
        } else {

        }

知道包名(启动默认的启动界面):

Intent intent = getPackageManager().getLaunchIntentForPackage("com.pull.csd");
                if (intent != null) {
                    intent.putExtra("type", "110");
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(intent);
                }

方式二:

通过在要启动的界面下增加某个intent-filter,然后启动;

第一种:ACTION字符串:

Intent intent = new Intent();
                intent.setAction("CSD");
                intent.putExtra("type", "110");
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);

第二种:ACTION字符串+包名+启动页所在项目位置

ComponentName componentName = new ComponentName("com.pull.csd", "com.pull.csd.SplashActivity");
                Intent intent = new Intent();
                intent.setAction("CSD");
                intent.setComponent(componentName);
                intent.putExtra("type", "110");
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);

在被启动的界面上加一个intent-filter

<intent-filter>
                <action android:name="CSD" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

方式三:

通过浏览器打开某个应用

A应用启动B,则A中代码为

Intent intent = new Intent();
                intent.setData(Uri.parse("csd://pull.csd.demo/cyn?type=110"));
                intent.putExtra("", "");//这里Intent当然也可传递参数,但是一般情况下都会放到上面的URL中进行传递
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);

B中的代码解析数据代码为:

 private void parseData() {
        Intent intent = getIntent();
        if (intent != null) {
            String intentAction = intent.getAction();
            if (Intent.ACTION_VIEW.equals(intentAction)) {
                Uri intentData = intent.getData();
                String name = intentData.getQueryParameter("name");
                Log.e(TAG, "initIntentData: " + name);

            }
        }
    }

B中的mainfest.xml 中添加 ,url 启动第三方app,不需要添加 export = true,这个条件。

 <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

                <data
                    android:host="my_host"
                    android:scheme="jump"/>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>


或则

 <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
                
            </intent-filter>

            <intent-filter>

                <data
                    android:host="my_host"
                    android:scheme="jump"/>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <category android:name="android.intent.category.DEFAULT"/>

            </intent-filter>
        </activity>

针对B 应用app的某个被启动的界面需要依赖前面界面传递的数据或者前面界面的逻辑情况,这个比较复杂,后面再去考虑?

 


参考文章:

安卓开发由一个APP拉起另一个APP的方法总结 :https://blog.csdn.net/zang_chen/article/details/76677846 (比较详细)

通过URL启动另一个app: https://www.jianshu.com/p/7d90a6cfb5f3

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Pico A8110上开机启动第三方应用程序,您可以执行以下步骤: 1. 打开Pico A8110的设置菜单。您可以在主屏幕上找到“设置”图标,或者向下滑动通知栏,在快捷设置中找到“设置”图标。 2. 在设置菜单中,向下滚动并找到“应用程序”选项。点击打开应用程序设置页面。 3. 在应用程序设置页面,您可以找到已安装的所有应用程序的列表。请查找并选择您希望在开机启动时自动运行的应用程序。 4. 打开所选应用程序的详细信息。在某些设备上,您可能需要点击“存储”选项卡才能访问此选项。 5. 在应用程序详细信息中,您可以找到一个名为“启动”或“自启动”的选项。点击此选项以打开自启动设置页面。 6. 在自启动设置页面上,您可以找到一个开关按钮。打开此开关按钮,以允许该应用程序在Pico A8110开机时自动启动。 7. 确认设置后,根据屏幕上的指示进行操作。您可能需要重新启动设备才能使更改生效。 完成以上步骤后,所选的第三方应用程序将在Pico A8110开机时自动启动。请注意,不是所有的应用程序都具有自启动选项,因此有些应用程序可能无法在开机时自动启动。 ### 回答2: Pico A8110是一款智能手机,可以通过开机启动设置来让手机在开机时自动启动第三方应用程序。 要在Pico A8110上开机启动第三方应用程序,您可以按照以下步骤进行操作: 1. 打开手机的设置应用程序,可以在应用程序列表或主屏幕上找到设置图标。 2. 在设置应用程序中,向下滚动并找到“应用程序”或“应用程序管理”选项,然后点击进入。 3. 在应用程序管理中,您可以查看和管理已安装的应用程序。找到您想要设置为开机启动第三方应用程序,并点击进入该应用程序的详细页面。 4. 在应用程序的详细页面中,您可以看到各种选项和设置。向下滚动并找到“开机启动”或类似选项,并点击进入。 5. 在开机启动选项中,您可以看到一个开关按钮或类似的选择。将按钮切换为打开状态,表示您希望该应用程序在手机开机时自动启动。 6. 关闭设置应用程序,并重新启动您的Pico A8110手机。 一旦您的Pico A8110手机开机启动设置按照上述步骤进行了配置,您的第三方应用程序将会在每次手机开机时自动启动。 需要注意的是,开机启动第三方应用程序可能会影响手机的性能和电池寿命。因此,建议您谨慎选择需要开机启动应用程序,尽量只选择那些必要且常用的应用程序,以确保手机的正常运行。 ### 回答3: Pico A8110是一款智能设备,可以安装和运行第三方应用程序。要在Pico A8110上开机启动第三方应用程序,需要按照以下步骤进行操作: 1. 首先,确保你已经在Pico A8110上安装了第三方应用程序。可以通过在应用商店或通过APK文件进行安装。 2. 在Pico A8110的主屏幕上,找到设置选项。通常,可以通过下拉通知栏,点击设置图标或者在应用列表中查找它。 3. 在设置选项中,找到和点击“应用管理”或者“应用程序”。 4. 在应用管理中,你会看到所有已安装的应用程序的列表。从列表中选择你想要开机启动第三方应用程序。 5. 点击所选应用程序的信息页面进入更多设置。 6. 在更多设置中,你会看到一个名为“自启动”或者“自动启动”的选项。打开这个选项。 7. 打开“自启动”选项后,Pico A8110会在开机时自动启动选定的第三方应用程序。 请注意,不是所有的应用程序都支持开机启动功能。有些应用程序可能不提供该选项。另外,过多的开机启动应用程序可能会影响设备的性能和电池寿命,因此请谨慎选择需要开机启动应用程序。 以上是在Pico A8110上开机启动第三方应用程序的简单步骤。希望此回答对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值