android通訊錄代碼
Ⅰ android 開發製作通訊錄,怎麼實現按撥號鍵對當前聯系人撥號
通訊錄是用listview做的嗎?如果是那麼用撥號鍵的button對象setTag吧電話號存起來,然後在監聽事件內取出來,這樣就能保證每一行的號碼都是相對應的了。例如。。
btn.setTag(p.telephone);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + v.getTag()));
startActivity(intent);
}
});
Ⅱ Android編程,根據姓名獲得手機通訊錄中的電話號碼
java">importcn.teachcourse.R;
/**
*[email protected]/5/5.
*/
{
privatestaticfinalStringTAG=PhoneNameActivity.class.getSimpleName();
privateEditTextet;
publicstaticvoidstart(Contextcontext){
start(context,null);
}
publicstaticvoidstart(Contextcontext,Intentextras){
Intentintent=newIntent();
intent.setClass(context,PhoneNameActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
|Intent.FLAG_ACTIVITY_SINGLE_TOP);
if(extras!=null){
intent.putExtras(extras);
}
context.startActivity(intent);
}
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_phone_name);
et=(EditText)this.findViewById(R.id.mobile);
}
publicvoidgetTelClick(Viewview){
Stringname=et.getText().toString().trim();
number(name);
}
/**
*通過輸入獲取電話號碼
*/
publicvoidnumber(Stringname){
//使用ContentResolver查找聯系人數據
Cursorcursor=getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);
//遍歷查詢結果,找到所需號碼
while(cursor.moveToNext()){
//獲取聯系人ID
StringcontactId=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
//獲取聯系人的名字
StringcontactName=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
if(name.equals(contactName)){
//使用ContentResolver查找聯系人的電話號碼
Cursorphone=getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+contactId,null,null);
if(phone.moveToNext()){
StringphoneNumber=phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Toast.makeText(this,phoneNumber+"TeachCourse——blog。。。",Toast.LENGTH_SHORT).show();
Log.d(TAG,"電話:"+phoneNumber);
break;
}
}
}
}
}
1、修改getTelClick()方法
2、修改Toast麵包屑提示
3、修改獲取聯系人名字方法
4、位置稍微調整
Ⅲ 如何調用android通訊錄
這個過程有三步:
1)許可向你的應用程序的manifest中添加讀取通訊錄數據的許可
<uses-permission android:name="android.permission.READ_CONTACTS"/
2)調用Contact Picker
在你的activity中,創建一個Intent,用來請求系統查找一個能夠執行一個從Contacts URI的項目中發出的PICK動作的activity,
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
調用startActivityForResult在Intent中傳遞(和一個整數的請求代碼,在這個例子中是PICK CONTACT )。這將導致android啟動一個已經被等級的activity,用來支持在People.CONTENT URI上的ACTION_PICK ,然後當按下選擇(或者取消)的時候返回到這個activity。startActivityForResult(intent, PICK_CONTACT);
3)仍然在你的activity中,重寫onActivityResul方法來監聽在你的第二個步驟中啟動的activi'select a contact' activity的回調。你應該檢查反饋的請求代碼是否匹配你的期望值,結果代碼是否是 RESULT_OK。
通過在數據Intent參數中調用getData()你可以獲得選擇的聯系人的URI。為了獲得選擇的聯系人的名字你需要使用URI從返回的游標中創建一個新的查詢和提取的參數。
@Overridepublic void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT) :
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {
String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));}}break;}}
Ⅳ android編程,怎麼刪除通訊錄中的聯系人
android聯系人是使用內嵌套的資料庫進行保存的,所有隻要在資料庫中找到相應的ID就可以進行刪除了。
CursorcontactsCur=cr.query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);
while(contactsCur.moveToNext()){
//獲取ID
StringrawId=contactsCur.getString(contactsCur.getColumnIndex(ContactsContract.Contacts._ID));
//刪除
Stringwhere=ContactsContract.Data._ID+"=?";
String[]whereparams=newString[]{rawId};
getContentResolver().delete(ContactsContract.RawContacts.CONTENT_URI,where,whereparams);
}
Ⅳ android開發怎樣獲取通訊錄聯系人信息
要獲取通訊錄的聯系人信息,只有通過系統聯系人應用的內容提供者,才能訪問到聯系人資料庫,下面有一個代碼演示
代碼演示
privateArrayList<HashMap<String,String>>readContact(){
//首先,從raw_contacts中讀取聯系人的id("contact_id")
//其次,根據contact_id從data表中查詢出相應的電話號碼和聯系人名稱
//然後,根據mimetype來區分哪個是聯系人,哪個是電話號碼
UrirawContactsUri=Uri
.parse("content://com.android.contacts/raw_contacts");
UridataUri=Uri.parse("content://com.android.contacts/data");
ArrayList<HashMap<String,String>>list=newArrayList<>();
//從raw_contacts中讀取聯系人的id("contact_id")
CursorrawContactsCursor=getContentResolver().query(rawContactsUri,
newString[]{"contact_id"},null,null,null);
if(rawContactsCursor!=null){
while(rawContactsCursor.moveToNext()){
StringcontactId=rawContactsCursor.getString(0);
//System.out.println(contactId);
//根據contact_id從data表中查詢出相應的電話號碼和聯系人名稱,實際上查詢的是視圖view_data
CursordataCursor=getContentResolver().query(dataUri,
newString[]{"data1","mimetype"},"contact_id=?",
newString[]{contactId},null);
if(dataCursor!=null){
HashMap<String,String>map=newHashMap<String,String>();
while(dataCursor.moveToNext()){
Stringdata1=dataCursor.getString(0);
Stringmimetype=dataCursor.getString(1);
//System.out.println(contactId+";"+data1+";"
//+mimetype);
if("vnd.android.cursor.item/phone_v2".equals(mimetype)){
map.put("phone",data1);
}elseif("vnd.android.cursor.item/name"
.equals(mimetype)){
map.put("name",data1);
}
}
list.add(map);
dataCursor.close();
}
}
rawContactsCursor.close();
}
returnlist;
}手機聯系人圖片: