有没有办法在未记录但在Android中允许的ContentProvider中列出列名?

时间:2013-09-07 11:25:45

标签: android android-contentprovider

假设您有AbcContentProvider,它允许您使用它的内容查询/更新它:// url。

是否可以查看可以更新或查询的名称/值?

(这类似于sql查询中的“select * from table_abc”或类似于数据库表中的“Show tables”)

2 个答案:

答案 0 :(得分:4)

这会有所帮助:

Uri u = // your CONTENT_URI
Cursor c = context.getContentResolver(uri, null, null, null, null, null);
Log.d(TAG, "listing column for uri=" + uri);
for (int i = 0; i<c.getColumnCount(); i++) {
    Log.d(TAG, "column " + i + "=" + c.getColumnName(i));
}

如果远程ContentProvider不接受空投影:

  1. 如果这是关于android内部的ContentProvider:阅读android源代码:http://source.android.com/
  2. 如果这是关于其他一些应用程序:反编译并阅读源代码:Android - How to decode and decompile any APK file?
  3. 您可以通过查询带有(随机/生成)名称列表的单个元素投影来强制列表

答案 1 :(得分:0)

你读过Cursor文档吗?如果不是:getColumnCount()&amp; getColumnName(IDX)