Android 为什么我的意图不一致?
我试着跟随关于意图和意图过滤器的文章,希望将我的应用程序从显式意图移动到隐式意图(似乎使事情变得更简单)。然而,无论我如何努力,我的Android 为什么我的意图不一致?,android,android-intent,Android,Android Intent,我试着跟随关于意图和意图过滤器的文章,希望将我的应用程序从显式意图移动到隐式意图(似乎使事情变得更简单)。然而,无论我如何努力,我的意图始终不匹配。相关信息如下: Intent in = new Intent(Intent.ACTION_VIEW, Provider.constantsUri); //in.addCategory(Intent.CATEGORY_DEFAULT); is this required? startActivity(in); 在我的清单中: <
意图始终不匹配。相关信息如下:
Intent in = new Intent(Intent.ACTION_VIEW, Provider.constantsUri);
//in.addCategory(Intent.CATEGORY_DEFAULT); is this required?
startActivity(in);
在我的清单中:
<activity android:name="Equation" >
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<data android:scheme="content" android:host="com.espian.formulae.pro" android:path="const"></data>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</activity>
我也尝试过用Uri.Builder
构建Uri
,但也没有成功。有什么明显的东西我遗漏了吗?我在我的一个应用程序中定义了这样一个意图:
<activity android:name=".TwitterAuthActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="moodfling" android:host="twitterauth" />
</intent-filter>
</activity>
它启动到活动中。听起来你的过滤器定义有问题,但我不确定是什么问题。尝试复制我的版本,确保它适合您,然后在更改部件时尝试缩小它的范围。似乎如果我的数据中只有一个方案和主机(如您的示例),它就可以工作,但如果我在其中放置了一个路径(这是必需的),它就不匹配了?问题是,异常表示没有任何内容与Uri解析的内容完全相同。要改用数据类型吗?您确定路径正确吗?我认为,如果从示例中记录constantsUri.getPath(),它实际上会显示“/const”。尝试更改您的意图过滤器,使其包含前导斜杠。您的评论中概述的内容有效(即需要前导斜杠),谢谢:)
<activity android:name=".TwitterAuthActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="moodfling" android:host="twitterauth" />
</intent-filter>
</activity>
Intent in = new Intent(Intent.ACTION_VIEW, Uri.parse("moodfling://twitterauth"));
startActivity(in);