我已经尝试过关于Intents和Intent Filters的文章,希望将我的应用程序从显式转换为隐式意图(似乎使事情变得更简单)。但是,无论我怎么努力,我的Intents
都不会匹配。以下相关信息:
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>
和constantsUri的定义:
public static Uri constantsUri = Uri.parse("content://com.espian.formulae.pro/const");
我也尝试用Uri
形成Uri.Builder
,但也没有运气。有什么东西真的很明显我不见了吗?
答案 0 :(得分:0)
我的一个应用程序中有一个这样的意图定义:
<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);
它启动到活动。听起来你的过滤器定义有问题,但我不确定是什么。尝试复制我的版本并确保它适合您,然后在更换零件时尝试缩小版本。