聯絡人提供了自己contentprovider,因此可以使用contentresolver來訪問它的資料。
舉例來說:
...
......
....
//建立乙個隱式intent
final intent pickintent =
new intent(intent.action_pick,
contactscontract.contacts.content_uri);
msuspectbutton = (button)v.findviewbyid(r.id.crime_suspect);
msuspectbutton.setonclicklistener(new view.onclicklistener()
});...
......
.....
處理返回結果的**如下:
@override
public
void
onactivityresult(int requestcode, int resultcode, intent data) else
if (requestcode == request_contact && data != null) ;
//得到對應的cursor
cursor c = getactivity().getcontentresolver()
.query(contacturi, queryfields, null, null, null);
if (c == null)
try
c.movetofirst();
string suspect = c.getstring(0);
mcrime.setsuspect(suspect);
msuspectbutton.settext(suspect);
msuspectcontactid = c.getstring(1);
mdialbutton.setenabled(true);
} finally
}................
}
聯絡人應用返回結果intent時,會新增intent.flag_grant_read_uri_permission標誌。
該標誌賦予當前應用訪問contacturi對應的聯絡人資料的許可權。
Android 聯絡人資料庫操作
android 聯絡人資料庫 contentproviders 是android 系統核心元件之一,contentproviders 封裝了資料的訪問介面 有時候需要更新多行資料,可以選擇呼叫多次contentresolver的對應函式,或者 使用批量操作。當然 後者效能會比較好些 為了使批量更新 ...
android電話聯絡人資料庫
最近做乙個聯絡人方面的專案,包括通訊錄在這記錄一下,希望可以幫到有用的朋友 1.查詢手機所有聯絡人 public void querycontactphonenumber null,null,null,null for int i 0 i cursor.getcount i emitter.onne...
程式中呼叫聯絡人資料
首先新增乙個許可權 發起乙個 contact picker intent intent new intent intent.action pick,people.content uri startactivityforresult intent,pick contact 重寫方法 override ...