由于项目的需求涉及到这放面的,在网上差了一些资料,自己做的DEMO例子如下:package com.zte.read;

package com.zte.read;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.PhoneLookup;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;

public class ReadchinaActivity extends Activity {
/** Called when the activity is first created. */
private final static String s = "CopyContacts";
private List<String> list;
private ListView mListView;
private Button mButton;
private ArrayAdapter<String> adapter;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button) findViewById(R.id.button1);
mListView = (ListView) findViewById(R.id.list);
mListView.setVisibility(View.GONE);
data();
mButton.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
// TODO Auto-generated method stub
mListView.setVisibility(View.VISIBLE);
mListView.setAdapter(adapter);
}

});
}

public void data() {
list = new ArrayList<String>();

String name = null;

// 得到ContentResolver对象
ContentResolver cr = getContentResolver();
// 取得电话簿开始第一项的光标
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
null, null, "sort_key_alt");
// 向下移动光标
while (cursor.moveToNext()) {
// 取得联系人名字
int nameFieldColumnIndex = cursor
.getColumnIndex(PhoneLookup.DISPLAY_NAME);
name = cursor.getString(nameFieldColumnIndex);
list.add(name);
// 取得联系人ID
String contactId = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phone = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "
+ contactId, null, null);

while (phone.moveToNext()) {
// 取得联系人的号码
int numberIndex = phone
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
String number = phone.getString(numberIndex);
Log.v(s, "GET CONTACT'S NUMBER");
}
phone.close();
}
cursor.close();
Log.i("RG", "data--->>>" + list);
adapter = new ArrayAdapter<String>(ReadchinaActivity.this,
android.R.layout.simple_list_item_1, list);
}

}

上面红色部分的解释;

在android联系人表里面一个两个比较有意思的字体sort_key和sort_key_alt,它里面保存的是联系人名字的拼音字母,

例如联系人名字是“李明”,则sort_key保存的是“LI李MING明”,这样如果是按sort_key或sort_key_alt排序的话,就可以实现按[a-z]或[z-a]

进行排序了

记得权限哦-------------->>>>>:

<uses-permission android:name="android.permission.WRITE_CONTACTS" >
</uses-permission>
<uses-permission android:name="android.permission.READ_CONTACTS" >
</uses-permission>

补充一下,这个验证在2.3以上可行,2.1不行,2.2还没测试


更多相关文章

  1. androidの监听EditView中的文本TextWatcher
  2. Android(安卓)API翻译:Contact的子类介绍
  3. Android(安卓)快速获取用户通信录联系人 姓名、电话、首字母 及
  4. Android在原生集成react native
  5. android监听系统联系人修改
  6. android导入多个第三方包
  7. Android访问Tomcat错误以及mp3player项目乱码问题解决
  8. 如何编译运行Android系统自带桌面Launcher2源码
  9. Android(安卓)开发之拦截EditText的输入内容,定制输入内容

随机推荐

  1. Android之SQLite——不同数据库间复制表
  2. android蚂蚁金服支付宝支付集成步骤
  3. Android(安卓)模拟按键事件(KeyEvent)
  4. html基础:标签与段落,列表,表格,表单
  5. android基础(1)
  6. Android开发从初级到高级学习路线
  7. android拍照、图库与裁剪
  8. 国内优秀Android学习资源汇总全集
  9. Dagger2使用详解
  10. Android:实现带图片和CheckBox的ListView