如何匹配Android 4.3中内容URI的根目录?

时间:2013-09-19 05:17:18

标签: android android-contentprovider android-4.3-jelly-bean

当有人点击我的ContentProvider的根目录时,我想返回一些结果。但是,从Android 4.3开始,我无法匹配root!这是我尝试过的一切,没有什么能奏效的。这在4.3下返回-1,但不在早期版本下。

如何匹配该URI?

private int testMatch(){
    UriMatcher mUriMatcher = new UriMatcher(0);
    mUriMatcher.addURI("com.someone.app.provider.thingy", "/#", 0);
    mUriMatcher.addURI("com.someone.app.provider.thingy", "/", 1);
    mUriMatcher.addURI("com.someone.app.provider.thingy", "", 2);
    mUriMatcher.addURI("com.someone.app.provider.thingy", "/*", 3);
    mUriMatcher.addURI("com.someone.app.provider.thingy", "#", 4);
    mUriMatcher.addURI("com.someone.app.provider.thingy", "*", 5);
    mUriMatcher.addURI("com.someone.app.provider", "thingy", 6);

    Uri uri=Uri.parse("content://com.someone.app.provider.thingy");

    return mUriMatcher.match(uri);
}

1 个答案:

答案 0 :(得分:0)

从文档中,传递给UriMatcher构造函数的值用于匹配根路径,但在代码中,路径0会覆盖相同的值(/#)。

尝试以下代码,看看是否可以匹配根路径:

UriMatcher mUriMatcher = new UriMatcher(0);
Uri uri=Uri.parse("content://com.someone.app.provider.thingy");
return mUriMatcher.match(uri);

之前它在4.3之前工作的原因可能是由于4.3接受了领先的/