package com.android.contacts;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class PhoneEditActivity extends Activity{
private Button canelButton;
private Button okButton;
private String TAG="gancuirong";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_name_phone_numbler);
setupView();
}
public void setupView(){
Intent intent =getIntent();
final String name=intent.getStringExtra("name");
final String phoneString=intent.getStringExtra("phone");
final EditText nameTextView=(EditText) findViewById(R.id.phone_name_contact_edit);
nameTextView.setText(name);
final EditText phoneTextView=(EditText) findViewById(R.id.phone_number_contact_edit);
phoneTextView.setText(phoneString);
canelButton =(Button) findViewById(R.id.phone_contact_edit_btn_canel);
canelButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
finish();
}
});
okButton=(Button) findViewById(R.id.phone_contact_edit_btn_ok);
okButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
ContentResolver contentResolver=getContentResolver();
Cursor cursor=null;
/* String [] pro=new String[]{
Contacts.People._ID,Contacts.People.NAME,Contacts.People.NUMBER
};
cursor=contentResolver.query(Contacts.People.CONTENT_URI, pro, Contacts.People.NAME+"=?", new String[]{name}, Contacts.People.NAME+" ASC");
cursor.moveToFirst();
Uri uri=Uri.withAppendedPath(Contacts.People.CONTENT_URI, cursor.getString(cursor.getColumnIndex(Contacts.People._ID)));
ContentValues values=new ContentValues();
values.put(Contacts.People.NAME, nameTextView.getText().toString());
contentResolver.update(uri, values, null, null);*/
String id="";
String [] proStrings=new String[]{
"_id"
};
Log.i(TAG, "change_after=="+nameTextView.getText().toString());
Uri uri1=Uri.parse("content://com.android.contacts/raw_contacts");
Log.i(TAG, "uri1=="+uri1);
/*
uri:要查询的内容提供者(content provider)的URI
projection:要返回的columns列表
selection:SQL语句的where子句
selectionArgs:selection的参数,如果包含?,?号将会被参数所替换
sortOrder:SQL的ORDER BY排序子句
*/
cursor=contentResolver.query(uri1, proStrings, "display_name =?", new String[]{name}, null);//第三个参数
Log.i(TAG, "cursor_PhoneEditActivity=="+cursor);
while(cursor.moveToNext()){
Log.i(TAG, "cursor.moveToNext==ture");
//按名字查询查询ID ,id可能是多个
String _id=cursor.getString(cursor.getColumnIndex("_id"));
Log.i(TAG, "联系人ID raw_contact_id="+_id);
Uri uri3=Uri.parse("content://com.android.contacts/data");
Log.i(TAG, "uri3=="+uri3);
//��ID��ȡ�绰����
//via liaobz 2012-10-10
//����������,������:
//�༭��ʱ���ò���_id,��ԭ����data2(data1-data15�ڲ�ͬmimetype�´��ֵ��ͬ)
//����mimetype=[vnd.android.cursor.item/phone_v2]ʱ,data2����������
//��סլ���ֻ�λ����λ���档������data2=2���ֻ�,������Ȼ����!!
Cursor cursor2=contentResolver.query(uri3, new String[]{"data1"}, "raw_contact_id =?"+" and data2=2", new String[]{_id}, null);
Log.i(TAG, "PhoneEditAvtivity----cursor2="+cursor2);
while(cursor2.moveToNext()){
String phoneStringData=cursor2.getString(cursor2.getColumnIndex("data1"));
if(phoneStringData.equals(phoneString)){
id=_id;
Log.i(TAG, "id==_id===="+id);
}
}
cursor2.close();
}
//读取SIM卡中的联系人
Uri uriSim=Uri.parse("content://icc/adn");
Cursor mCursor=getContentResolver().query(uriSim, null, null, null, null);
if(mCursor!=null){
while(mCursor.moveToNext()){
String name=mCursor.getString(mCursor.getColumnIndex("name"));
String number=mCursor.getString(mCursor.getColumnIndex("number"));
String idSim=mCursor.getString(mCursor.getColumnIndex("_id"));
/*
//获取联系人名字
int nameFieldColumnIndex=mCursor.getColumnIndex("name");
//获取电话号码
int numberFieldColumnIndex=mCursor.getColumnIndex("number");
//获取id
int idFieldColumnIndex=mCursor.getColumnIndex("_id");
*/
if(number.equals(phoneString)){
id=idSim;
}
}
}
mCursor.close();
//联系人电话更新
/*
Uri uri2 = Uri.parse("content://com.android.contacts/data");
ContentValues values2=new ContentValues();
values2.put("data1", phoneTextView.getText().toString());
contentResolver.update(uri2, values2, "raw_contact_id =?"+" and data2=2",new String[]{id});*/
if(id!=""){
/*//删除该条记录
ContentValues values3=new ContentValues();
values3.put("deleted", 1);
contentResolver.update(uri1, values3, "_id =?", new String[]{id});*/
ContentValues values3=new ContentValues();
values3.put("deleted", 1);
contentResolver.update(uri1, values3, "_id =?", new String[]{id});
ContentResolver resolver = getContentResolver();
Uri uri4 = Uri.parse("content://com.android.contacts/data");
resolver.delete(uri4, "raw_contact_id =?", new String[]{id});
//插入数据
uri4 = Uri.parse("content://com.android.contacts/raw_contacts");
ContentValues values4 = new ContentValues();
// long ids = ContentUris.parseId(resolver.insert(uri4, values4));
//删除联系人姓名
resolver.delete(uri4, "_id =?", new String[]{id});
//删除联系人电话
//添加联系人姓名
long ids = ContentUris.parseId(resolver.insert(uri4, values4));
uri4 = Uri.parse("content://com.android.contacts/data");
values4.put("raw_contact_id", ids);
values4.put("data2", nameTextView.getText().toString());
values4.put("mimetype", "vnd.android.cursor.item/name");
resolver.insert(uri4, values4);
//添加联系人电话
values4.clear(); // 清空上次的数据
values4.put("raw_contact_id", ids);
values4.put("data1", phoneTextView.getText().toString());
values4.put("data2", "2");
values4.put("mimetype", "vnd.android.cursor.item/phone_v2");
resolver.insert(uri4, values4);
}
else{
Toast.makeText(PhoneEditActivity.this, R.string.cannot_edit_contact, Toast.LENGTH_LONG).show();
}
//插入数据
cursor.close();
finish();
}
});
}
}