1

我正在尝试创建一个内容提供程序,其中密钥包含正斜杠“/”。我搜索了很长一段时间,但没有地方/例子说明它。

内容://com.lily.provider/items/*

我理解的一般示例: content://com.lily.provider/items/ab

我想要做的:我的密钥是一个带有“/”
内容的字符串://com.lily.provider/items/a/b 其中a/b 是项目ID,它与ab 的位置相同。

我的问题:

  1. content://com.lily.provider/items/a/b 会匹配到 content://com.lily.provider/items/* 吗?这是为什么?
  2. 有什么变通方法可以用来解决问题
4

1 回答 1

2

content://com.lily.provider/items/a/b 会匹配到 content://com.lily.provider/items/* 吗?这是为什么?

是的,它会匹配。星号*表示“匹配任何字符,包括斜杠”。

有什么解决方法可以用来解决问题

如果你想匹配已知的前缀,那么你可以添加更多的条目到你的 URI 匹配器中(按这个顺序):

  • content://com.lily.provider/items/a/*
  • content://com.lily.provider/items/b/*
  • content://com.lily.provider/items/*

如果您坚持在数据中使用斜杠,那么您应该对不用作路径分隔符的斜杠进行 URI 编码%2f

否则,我不确定问题是什么。" /items/a/b" URI 将根据需要匹配您的原始模式,然后您可以根据需要解析 URI 的路径组件。

于 2010-10-13T21:20:04.383 回答