内容提供者URI匹配器

9

在实现ContentProvider时,文档中明确建议定义所有URI。但是我对URI匹配部分感到困惑:例如,我有一个名为“items”的表,包名为org.company.example,然后我定义了

 public static final Uri CONTENT_URI = 
  Uri.parse("content://org.company.example.sampleprovider/items");

在静态初始化中,我应该使用哪个权限部分来匹配URI:

 private static final UriMatcher uriMatcher;

  static {
   uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
   uriMatcher.addURI("what goes here?", "items", ITEM);
   uriMatcher.addURI("what goes here?", "items/#", ITEM_ID);
  }
1个回答

14
public static final String PROVIDER_NAME = "org.company.example.sampleprovider";
public static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME);
private static final UriMatcher uriMatcher;
static {
   uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
   uriMatcher.addURI(PROVIDER_NAME, "items", ITEM);
   uriMatcher.addURI(PROVIDER_NAME, "items/#", ITEM_ID);
}

我的 CONTENT_URI 不应该包含表的路径吗? - user468311
1
你不必这样做,但这是可能的。这取决于你自己的决定。我的内容提供者已经被命名为“BooksProvider”,因此我不需要添加额外的“/books”来向用户说明提供者的功能。 - Pim Reijersen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接