2013-05-14 127 views
0

我可以在LogCat中看到ActivityManager正在报告有关特定内容提供商的信息。我用下面的代码试图访问内容提供商,以了解有关它的更多:无法访问Android内容提供商

Cursor cursor = context.getContentResolver().query(uriDSDS, null, null, null, null); 

    String[] columnNames = cursor.getColumnNames();   
    Log.d(TAG, "columnNames=" + columnNames.toString()); 

不幸的是,试图让光标之后,我看到的logcat以下错误:

无法找到供应商__

问题是什么?为什么我不能访问这个提供商?访问是否仅限于某些应用程序?是否有办法进入亚行或其他地方查看设备上所有可用的内容提供商?

+0

对不起,这是个明显的问题,但是'uriDSDS'是什么? – davidcesarino 2013-05-14 03:21:07

+0

这是我为看起来是“双卡”内容提供者而创建的字符串。我看到logcat中的字符串,所以我希望能够附加到它。有没有办法找到我的设备上可用的所有内容提供商,以便我可以检查字符串以确定我是否有正确的内容提供商? – gonzobrains 2013-05-14 13:27:43

+0

我试图查询的内容提供者的URI。 – gonzobrains 2013-05-16 03:44:50

回答

0

确保您添加正确的URI 例如

乌里uriDSDS = Uri.parse( “内容://aaa.aaa/values”);

+0

有什么方法可以确认你有正确的Uri吗?你可以查询一个提供商,看看它提供的一切吗? – gonzobrains 2013-05-16 03:45:16

0

在下面的工作示例中,请检查您的uriDSDS是否正确。

Cursor people = getContentResolver().query(
         ContactsContract.Contacts.CONTENT_URI, null, null, null, 
         null); 

       // get contact id 
       while (people.moveToNext()) { 
        if (people != null) { 
         int numberFieldColumnIndex = people 
           .getColumnIndex(PhoneLookup._ID); 
         String number = people.getString(numberFieldColumnIndex); 
         contactId.add(number); 
        } 
       } 

       people.close(); 
+0

如何验证我拥有正确的URI?有没有办法浏览给定设备上的所有内容提供商? – gonzobrains 2013-05-14 13:28:23