创建运行时时IntentFilter不工作

时间:2012-03-06 04:57:48

标签: android

我有问题。我需要中断非静态链接,但用户将在运行时创建所有列表。所以我在运行时创建了我的intentfilter对象。因此,当我使用清单文件中的代码时,它可以工作。但是在java类中使用它对我来说不起作用。这是代码

这不起作用

IntentFilter filter = new IntentFilter();
             filter.addAction(Intent.ACTION_VIEW);
             filter.addCategory(Intent.CATEGORY_DEFAULT);
             filter.addCategory(Intent.CATEGORY_BROWSABLE);
             filter.addDataAuthority("www.facebook.com", null);
             filter.addDataScheme("http");
RecieveBroadcaster  receiver = new RecieveBroadcaster();     
registerReceiver(receiver, filter);

但是如果静态设置它可以在清单

中使用
        <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="http" android:host="twitter.com"/>
             <data android:scheme="http" android:host="facebook.com"/>

        </intent-filter>     

1 个答案:

答案 0 :(得分:0)

在这种情况下,可能只是您的权限不匹配。在清单版本中,你有android:host =“facebook.com”,在程序版本中,你有addDataAuthority(“www.facebook.com”,null)

DataAuthority必须完全匹配。