0

当我使用自定义方案(例如 myhttp)时,一切都按预期工作,但如果我使用 http ,它不会处理,并且每次浏览器打开主机时(例如:192.168.1.111)。

我怎么解决这个问题?

我的 manifest.xml

        <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"/> 
            <data android:host="192.168.1.111"/>
        </intent-filter>

我的活动:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    final Intent intent = getIntent();
    Log.i("MyTAG", "here--01");
}
4

1 回答 1

1

为您的意图过滤器提供比默认浏览器更高的优先级:

http://developer.android.com/guide/topics/manifest/intent-filter-element.html#priority

    <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"/> 
        <data android:host="192.168.1.111"/>
        <android:priority="999"/>
    </intent-filter>

它控制执行广播接收器以接收广播消息的顺序。具有较高优先级值的那些在具有较低值的那些之前被调用。(该顺序仅适用于同步消息;对于异步消息,它会被忽略。)

该值必须是整数,例如“100”。数字越大优先级越高。默认值为 0。该值必须大于 -1000 且小于 1000。


此外,如果您正在处理您的浏览器。有一次,您可能已将 Chrome 设置为打开此意图的默认应用程序。所以你必须重置它。

Settings > Apps > Chrome (or Firefox or w/e) > Clear defaults

清除默认值


您可以使用名为Default App Manager的应用程序来检查您设置的默认值

于 2013-05-04T10:08:24.187 回答