Pro Android學習筆記(一六四):聯絡人API(7):新增聯絡人
新增新的聯絡人,就要增添raw contacts,需要android.permission.WRITE_CONTACTS的許可權。下面是程式碼片段:
//新增聯絡人的程式碼片段,入口為addContactTest()。showInfo()為在activity框中顯示資訊或其他顯示資訊的方式 private void addContactTest(String name, String phoneNumber){ showInfo("【1】insert a raw contact into table raw_contacts"); long rawContactId = insertRawContact(); showInfo("\n【2】insert the name("+name +") in table data"); insertName(rawContactId,name); showInfo("\n【3】insert the phone number(" + phoneNumber+ ") in table data"); insertPhone(rawContactId,phoneNumber); showInfo("\n【4】Now, look at the raw contact info"); showRawContactInfo(rawContactId); } /*【1】在table raw_contacts表中增添entry,使用的uri為RawContacts.CONTENT_URI,指定所屬的賬號 * ,即account type和account name。*/ private long insertRawContact(){ ContentValues cv = new ContentValues(); cv.put(RawContacts.ACCOUNT_TYPE,"cn.wei"); cv.put(RawContacts.ACCOUNT_NAME, "
[email protected]"); ContentResolver cr = mContext.getContentResolver(); Uri rawContactUri = cr.insert(RawContacts.CONTENT_URI, cv); showInfo("raw contact uri = " + rawContactUri.toString()); return ContentUris.parseId(rawContactUri); } /*【2】raw contacts的具體資訊是存放在table data中的,下面程式碼在data表中新增該raw contact的具體資訊: displayname * table data使用的uri為Data.CONTENT_URI */ private void insertName(long rawContactId, String name){ ContentValues cv = new ContentValues(); cv.put(Data.RAW_CONTACT_ID,rawContactId); cv.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);//vnd.android.cursor.item/name cv.put(StructuredName.DISPLAY_NAME, name); //對應data1 Uri uri = mContext.getContentResolver().insert(Data.CONTENT_URI, cv); showInfo("uri=" + (uri == null ? "null" : uri.toString())); } /*【3】在data表中新增該raw contact的具體資訊: phone */ private void insertPhone(long rawContactId, String phoneNumber){ ContentValues cv = new ContentValues(); cv.put(Data.RAW_CONTACT_ID,rawContactId); cv.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);//vnd.android.cursor.item/phone_v2 cv.put(Phone.NUMBER, phoneNumber); //data2 cv.put(Phone.TYPE,Phone.TYPE_HOME); //data1 Uri uri = mContext.getContentResolver().insert(Data.CONTENT_URI, cv); showInfo("uri=" + (uri == null ? "null" : uri.toString())); } /*【4】顯示該raw contact的詳細資訊,通過raw contract id進行索引,getACursor()以及ContactInfo見前一學習筆記的小例子*/ private void showRawContactInfo(long rawContactId){ Cursor c = null; try{ c = getACurosor(ContactsContract.RawContactsEntity.CONTENT_URI.toString(),"_id=" + rawContactId); for(c.moveToFirst(); !c.isAfterLast() ; c.moveToNext()){ ContactInfo one = new ContactInfo(); one.fillinFrom(c); showInfo("【】" + one.toString()); } }finally{ if(c != null) c.close(); } }
下面是小例子的執行截圖,以及執行後在系統中檢視聯絡人的結果:
小例子下載。
相關推薦
Pro Android學習筆記 十一 瞭解Intent 中
Intent的構成Intent可以帶有action,data(由URI表達),extra data(key/value map,鍵值對),指定的類名(成為component name)。一個intent至少攜帶上述的一個內容。Action。Action名,在上一筆記中已經給出兩種例子,一種是系統自帶的,如In
Pro Android學習筆記(一六四):聯絡人API(7):新增聯絡人
新增新的聯絡人,就要增添raw contacts,需要android.permission.WRITE_CONTACTS的許可權。下面是程式碼片段: //新增聯絡人的程式碼片段,入口為addContactTest()。showInfo()為在activity框中顯示資訊
Pro Android學習筆記(一六二):聯絡人API(5):讀Raw Contacts
我們將讀取Raw Contacts的資訊。 Raw Contacts提供的資訊 程式碼和之前獲取整合聯絡人的表頭資訊類似,只是URI不同,Raw contacts的URI為ContactsContract.RawContacts.CONTENT_URI。 private void showHasWhat
Pro Android學習筆記(一六十):聯絡人API(3):聯絡人資料
聯絡人資訊 檢視reference中android.provider.ContactsContract.CommonDataKinds可以知道該版本的Android API聯絡人中帶有哪些資訊。在API level 19中,我們看到有以下的資訊: 而各個資訊,例如Email,又有著他的結構,我們可以繼續
Pro Android學習筆記(一三七):Home Screen Widgets(3):配置Activity
map onclick widgets info xtra ces extends height appwidget 文章轉載僅僅能用於非商業性質,且不能帶有虛擬貨幣、積分、註冊等附加條件。轉載須註明出處http://blog.csdn.net/flowingfly
Pro Android學習筆記(三四) Menu(5) 動態選單
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Pro Android學習筆記(一五五) 感測器(5) 磁場感測器和方位(上)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Pro Android學習筆記(六十) Preferences(4) MultiSelect List Preferen
ListPreference提供單選列表,我們可以通過CheckBoxPreference提供多選列表。此外,Android在3.0後提供MultiSelectListPreference,它的實現和ListPreference相似,不同的是還可以不選擇或者多個選擇。如圖所示。XML檔案在複合例子中加入相關的
Pro Android學習筆記(一)——ContentProvider(上)
ContentProvider,Android四大元件之一。他是系統提供的一種抽象的資料服務。Android Developer對她的概述為: 大概意思就是說ContentProvider(內容提供者)就是為應用程式提供資料。他壓縮資料並通過ContentResol
Pro Android學習筆記(一五七):感測器(7):其他一些感測器
Wei:本來想下面接著的是NFC,NFC是支援讀寫的,和其他感測器在程式設計上很不一樣,但是手頭上找不到支援NFC的手機,記得以前三星Galaxy系列支援,例如幾年前的S3,而國產手機要比較貴的才支援,P6和Z7 mini都不支援,有興趣可以閱讀http://blog.csdn.net/pku_andro
Pro Android學習筆記(四二):Fragment(7):切換效果
利用fragment transaction進行切換,很方便提供切換的效果。 利用setTransition() 通過setTransition()我們可以設定有限幾個切換效果,程式碼如下: protected void addFragmentToStack(int index){
Pro Android學習筆記(一五四):感測器(4):陀螺儀、加速感測器
陀螺儀 陀螺儀(Gyroscope sensor)測量裝置轉動的角速度。最早的陀螺儀發明在中國,科學應用則在西方,陀螺儀是為士大夫坐轎子看書是免收燭光搖曳發明的,這在很久之前一部西方拍的科教片看到,具體名字忘了。Pro Android 4.0中說陀螺儀的誤差會慢慢積累,因此通與加速感測器一致使用,通過Ka
Pro Android學習筆記(四五):Dialog(2):DialogFragment
DialogFragment的例項newInstance()已經在上一次學習筆記中實現。我們建立dialog的UI,可以通過重寫DialogFragment的兩個函式當中的一個來實現,這兩個函式是onCreateView()和onCreateDialog(),前者返回view,後者返回dialog,如同通過
Pro Android學習筆記(六九):HTTP服務(3):HTTP POST MultiPart
HTTP POST不僅可以通過鍵值對傳遞引數,還可以攜帶更為複雜的引數,例如檔案。HTTP Post支援攜帶body,content-type為multipart。本次我們將嘗試通過http post上傳一個小檔案。 建立測試環境 上傳檔案的測試環境很難找,下載了Tomcat,想裝一個環境,開啟後,發現忘得
Pro Android學習筆記 ActionBar(1):Home圖標區
ces tom 新的 方便 find rac vertica lba manifest ?? Pro Android學習筆記(四八):ActionBar(1):Home圖標區 2013年03月10日 ? 綜合 ? 共 3256字 ? 字號 小 中 大 ? 評論關閉
Pro Android學習筆記(三十) Menu(1) 瞭解Menu
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Pro Android學習筆記(十二) 瞭解Intent(下)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Pro Android學習筆記 一一六 Location 2 LocationManager的位置獲取
LocationManager提供兩個主要功能:1、獲取裝置的地理位置(經緯度);2、當裝置進入制定的地理位置,通過通過intent通知。獲取位置資訊的基本方法簡單的程式碼片段如下:private void getMyLocation(){ //1、獲取LocationManager,LocationM
Pro Android學習筆記 六六 安全和許可權 3 Provider許可權
訪問其他應用的content provider我們在ProPermission中提供了一個content provider,成為PrivProvider,然後在ProPermissionClient中對呼叫這個provider介面。在ProPermission的AndroidManifest.xml中,對pr
Pro Android學習筆記(五一) ActionBar(4) 標準和Tab模式
之前,我們學習的Action Bar是標準模式,Tab模式的如下圖所示。對於Tab,我們在Android學習筆記(二二): 多頁顯示-Tag的使用中學習過,但Action Bar的tab更適合fragment的使用。我們在之前實現的標準Action Bar的基礎上新增導航用的tab,程式碼如下:public