2013-05-14 126 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