无法解析 Android 编程的意图

Posted

技术标签:

【中文标题】无法解析 Android 编程的意图【英文标题】:Cannot resolve an intent for Android programming 【发布时间】:2016-06-03 06:33:12 【问题描述】:

当我执行 getPackageManager().queryIntentActivities(myIntent, 0) 时,我得到了 ResolveInfo 的列表,但我无法在 startActivity(myIntent) 中解决 myIntent 的问题。

我目前正在关注 android 开发者网站上的介绍性示例。

Intent myIntent = new Intent("MY_CUSTOM_INTENT");
List<ResolveInfo> apps = getPackageManager().queryIntentActivities(myIntent, 0);
if(apps.size() > 0)
    startActivity(myIntent);

我检查了System.out.println(apps.size()) 的输出,返回 6,与预期一致。

对于我想从 myIntent 开始的其他应用程序,它们只是普通的 HelloWorld 应用程序

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

在意图过滤器中添加的一行。我不明白为什么它在查询可以解析 myIntent 的活动时完美无缺,而当真正尝试解析 myIntent 时,它开始出现错误(它表示没有可以执行此类意图的应用程序)。

【问题讨论】:

我已经解决了这个问题:不知何故,当我在 AndroidManifest.XML 中的默认操作 (action_main) 和类别 (category_launcher) 之间添加自定义操作 (my_custom_intent) 时,queryIntentActivities 选择了它们当我提出 my_custom_intent 时,意图实际上并没有被解释为由其中任何一个解决。我刚刚添加了另一个仅包含 my_custom_intent 和 category_default 的意图过滤器,并在查找活动时使用这两者设置了意图并且有效。 【参考方案1】:

你能像下面这样试一试吗

Intent myIntent = new Intent("MY_CUSTOM_INTENT");
List<ResolveInfo> apps = getPackageManager().queryIntentActivities(myIntent, 0);
 if(apps.size() > 0)
 myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 startActivity(myIntent);

【讨论】:

【参考方案2】:

看看 Intent 类。您使用的构造函数有以下注释:

使用给定的操作创建意图。所有其他字段(数据、类型、 类)为空。请注意,动作必须在 命名空间,因为 Intents 在系统中全局使用——对于 例如系统 VIEW 动作是 android.intent.action.VIEW;一个 应用程序的自定义操作类似于 com.google.app.myapp.CUSTOM_ACTION。

HTH

【讨论】:

问题是,无论使用系统 VIEW 操作还是 com.google.somethign CUSTOM ACTION,当我将意图设置为“MY_CUSTOM_INTENT”并使用该意图调用 queryIntentActivities 方法时,我都会收到 6具有这种意图的应用程序(或活动),这是我试图这样做的。但是,当我 startActivity(myIntent) 时,它不会启动任何活动。

以上是关于无法解析 Android 编程的意图的主要内容,如果未能解决你的问题,请参考以下文章

无法解析符号'setOnClickListener' - Android Studio

RecyclerView“无法解析符号”错误,-Android Studio

无法解析符号 getFusedLocationProviderClient 和 LocationCallback

ACE编程,无法解析外部符号

无法解析配置 ':classpath' 的所有工件。无法解析 com.android.tools.build:gradle:3.5.3。显示错误

Android Studio 3.0:无法解析:app@dexOptions/compileClasspath'的依赖关系:无法解析项目:animators