gpt4 book ai didi

android - 为什么没有找到处理Intent的Activity?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:32 25 4
gpt4 key购买 nike

我不想采用常规的 getPackageManager().getLaunchIntentForPackage("com.example.app") 方式,而是想自己创建启动 Intent 。

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setPackage("com.example.app");
startActivity(intent);

如果 com.example.app 已安装、启用并具有正确的 list ,为什么 Android 找不到 Activity? (它与 getLaunchIntentForPackage 完美配合。)

最佳答案

我了解到您正在尝试启动具有已知程序包名称 (com.example.app) 的已知应用程序的 Launcher Activity 。我假设你有关于应用程序的信息。因此,您可以像这样通过显式 Intent 启动它:

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.example.app", "com.example.app.MainActivity"));
if(intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}

编辑:对两个 Intent 对象进行分析(intent1 == 你自己的 Intent VS intent2 == 从 getLaunchIntentForPackage() 创建的 Intent >), 区别在于

Intent 1:

{ act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] pkg=com.example.app }

Intent 2:

{ act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.example.app cmp=com.example.app/.MainActivity }

我将不得不相信,您为创建自己的 Intent 对象所做的工作不足以让显式 Intent 发挥作用。您将必须向 Android 提供有关您的 Intent 的更多信息,例如具体的组件名称(如我上面的回答所示)。

关于android - 为什么没有找到处理Intent的Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54492708/

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