UriMatcher匹配'n'路径段

时间:2013-09-19 09:28:39

标签: android uri android-contentprovider

我有一个自定义ContentProvider,可以为ShareActionProvider进行后台处理。提供的Uri的路径是完整的文件路径(例如:/mnt/sdcard/my.file)。 uri是这样创建的:

content://AUTHORITY/mnt/sdcard/my.file

uri匹配描述为:

uriMatcher.addURI(AUTHORITY, "*", 1);

现在这适用于:

content://AUTHORITY/my.file

但它不适用于完整路径。有没有办法匹配任何数量的路径段?

2 个答案:

答案 0 :(得分:1)

uriMatcher的通配符*一次匹配1个段,所以如果你想匹配

content://AUTHORITY/mnt/sdcard/my.file

你应该使用

uriMatcher.addURI(AUTHORITY, "*/*/*", 1);

这可能不是您想要的,因为您必须知道您接收的段数。因此,您可能应该实现自己的方式来匹配uris并提取所需的段(类似于uri.getPathSegments(),并遍历段以获取路径的每个部分)。

贝斯茨。

答案 1 :(得分:0)

我改为使用了uri片段:

content://AUTHORITY/file.ext#/full/path/to/file.ext

您可以通过以下方式获取完整路径:

uri.getFragment()