UriMatcher能够匹配自定义http链接吗?

时间:2010-11-17 13:28:52

标签: android uri matcher

我想使用UriMatcher来匹配自定义http链接。

我有以下代码:

UriMatcher mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
mUriMatcher.addURI("myLink", "http://a.b.c/?id=", 1);
mUriMatcher.addURI("myLink", "http://d.e.f/?id=", 2);
int match = mUriMatcher.match(Uri.parse("http://a.b.c/?id=123"));

但我总是在比赛结果中得到“-1”......

1 个答案:

答案 0 :(得分:4)

UriMatcher匹配形式的Uris:

scheme://<authority>/<path>

它会忽略查询字符串(在网址中出现?之后出现的任何内容)

您使用以下方式向匹配器注册:

mUriMatcher.addURI(authority, path, result);

因此,在上面的简单示例中,您无法区分具有或不具有查询字符串的相同URL,但您可以在域名上进行匹配。使用:

mUriMatcher.addURI('a.b.c', '/', 1);
mUriMatcher.addURI('d.e.f', '/', 2);

您可以在每个匹配处理程序中使用UrlQuerySanitizer来决定是否存在您需要的查询内容。