当有人点击我的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);
}
答案 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接受了领先的/
。