Android 内容 uri id 作为字符串

标签 android mongodb sqlite uri android-contentprovider

在我的 Android 应用程序中,我将 SQLite 与内容提供程序一起使用。由于某些(后端)原因,我的表具有 _id 主键作为 VARCHAR。

问题是:

我需要使用带有附加 id 的内容 uri。在所有示例中,我看到带有 id 的内容 uri 看起来像

content://<autority>/<model_or_table>/<long_id>

并将 UriMatcher 添加为
UriMatcher.add(autority, model_or_id + "/#", uri_id)

当然,“/#”匹配 id 仅适用于数字。

我的问题是:

有什么方法可以使用带有附加字符串 id 的内容 uri?典型的 id 类似于
50c11d774e5e1b99698b6879

并且典型的内容 uri 必须为
content://com.my.app.autority/Users/50c11d774e5e1b99698b6879

以及如何使用这样的uri和UriMatcher?

我知道我可以编写选择指令 (WHERE _id = "50c11d774e5e1b99698b6879") 来查询方法,但我需要确切的 URI 或将唯一字符串 ID 投影到 SQLiteDB 中唯一长值的方法。

有什么办法吗?提前感谢)抱歉英语不好)

最佳答案

请参阅有关创建内容提供程序的文档 here .具体参见标题Content URI patterns .正如您正确指出的 #是一个通配符,它​​将匹配具有整数 ID 的单行。 *通配符不会匹配具有非数字 ID 的单行。

据我所知,UriMatcher在这种情况下,类不能帮助你。

另请参阅 UriMatcher引用页here .

关于Android 内容 uri id 作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28511125/

相关文章:

android - "Compatible side by side NDK version was not found. Default is 20.0.5594570."是什么意思?

mongodb - 通过 spark-submit 将额外的 jar 传递给 Spark

javascript - 为什么我的 Mongoose 文档没有在 bcrypt 函数内正确更新?

android - 处理数据库连接和 ListView 操作

Android-NDK GCC/C++ 对于 std::string::find/std::getline(...) 似乎不稳定

android - 在 ConstraintLayout 中对 Google map 进行动画处理会使应用程序卡住

php - 如何使用 PHP 7 的 MongoDB 驱动程序执行 drop()?

java - 数据没有被插入并且在 android sqlite 中没有抛出异常

javascript - 如何在 Webkit 浏览器中用 Javascript 编写自定义 SQLite 函数?

android - android资源id应该用于非布局代码吗?