为什么我的意图不匹配?

时间:2011-03-28 22:51:38

标签: android android-intent

我已经尝试过关于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,但也没有运气。有什么东西真的很明显我不见了吗?

1 个答案:

答案 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);

它启动到活动。听起来你的过滤器定义有问题,但我不确定是什么。尝试复制我的版本并确保它适合您,然后在更换零件时尝试缩小版本。