gpt4 book ai didi

android - 从 Intent 打开第三方应用程序

转载 作者:行者123 更新时间:2023-11-29 00:40:36 28 4
gpt4 key购买 nike

如果我要打开其他应用程序,我正在开发一个应用程序。唯一的问题是我不知道如何引用第三方应用程序。我打算使用 Intent 。您可以仅使用包名来引用它,还是需要 Main Activity Intent 。是否有任何简单的方法可以找到正确的 Intent ,然后引用它。

最佳答案

I am working on an app were I am going to open other apps.

我将其解释为您正在创建一个启动器,类似于主屏幕上的启动器。

Can you refer to it useing only the packagename, or do you need the Main Activity intent.

启动器使用 ACTION_MAIN/CATEGORY_LAUNCHER Intent

Are there any simple ways of finding the right intent, and then refer to it.

使用 PackageManager 查找设备上所有可能的 ACTION_MAIN/CATEGORY_LAUNCHER Activity ,然后将这些 Activity 显示给用户以供选择。然后,您可以构造一个合适的 Intent 来启动他们的特定选择。

Here is a sample project实现启动器。

为了得出可以启动的事物列表,该示例应用使用:

PackageManager pm=getPackageManager();
Intent main=new Intent(Intent.ACTION_MAIN, null);

main.addCategory(Intent.CATEGORY_LAUNCHER);

List<ResolveInfo> launchables=pm.queryIntentActivities(main, 0);

下面是实际的启动逻辑,基于用户点击 ListActivity 中的“launchables”之一:

  @Override
protected void onListItemClick(ListView l, View v,
int position, long id) {
ResolveInfo launchable=adapter.getItem(position);
ActivityInfo activity=launchable.activityInfo;
ComponentName name=new ComponentName(activity.applicationInfo.packageName,
activity.name);
Intent i=new Intent(Intent.ACTION_MAIN);

i.addCategory(Intent.CATEGORY_LAUNCHER);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
i.setComponent(name);

startActivity(i);
}

关于android - 从 Intent 打开第三方应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9621985/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com