2011年7月28日 星期四

Android學習筆記:Content Provider-取得資料

本節重點
  1. 介紹Content Provider
  2. Content Provider之例子
 1. What is Content Provider?

在Android中每個應用程式會用到的資料通常都是獨立的。也可以說是每個應用程式都在各自的空間執行著,彼此不會影響。但是當我們需要用到其他應用程式的資料時該怎麼辦呢?例如:一個聊天的應用程式,要取得通訊錄裡的朋友清單。而Android 提供了 Content Provider這個機制,來解決應用程式間,彼此要分享資料的需求。
若是還不太了解Content Provider可以閱讀以下幾篇文章:

環境:Android2.2
假設今天我們的應用程式要取得通訊錄的資料該怎麼辦呢?  
   

  • 利用URI取得資源,會回傳一個Cursor
    • What is URI?  
 



      • 從Cursor取出資料:
         藉由getColumnIndex(欄位)取得欄位的索引值,再根據此索引值取得內容。
         以下例子為取得姓名攔位。


      //PhoneLookup.DISPLAY_NAME取得此欄位索引值
         int index = cur.getColumnIndex(PhoneLookup.DISPLAY_NAME);
      //取得Value
         String contact = cur.getString(index)
      //顯示出value
         Toast.makeText(this, contact,Toast.LENGTH_LONG).show();



      • P.S. 1
                如果使用了
                import android.provider.Contacts;          
                import android.provider.Contacts.People;
                在android2.X會出現警告的字句,因為在android 2.X SDK當中不建議使用,請改用
                 import android.provider.ContactsContract;
                 import android.provider.ContactsContract.PhoneLookup;
      • P.S. 2
                若執行後出現此Error
                requires android.permission.READ_CONTACTS
                代表AndroidManifest.xml沒有設定權限。請在xml檔中加入下段程式設定權限:
               

               
                

                
         

      沒有留言:

      張貼留言