这里还有一个联系人类:

package com.example.sendmsg;import android.graphics.Bitmap;public class ContactEntity {/** 联系人名称 **/private String name;/** 联系人号码 **/private String number;/** 联系人头像 **/private Bitmap photo;public ContactEntity(String name, String number, Bitmap photo) {super();this.name = name;this.number = number;this.photo = photo;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}public Bitmap getPhoto() {return photo;}public void setPhoto(Bitmap photo) {this.photo = photo;}}

代码如下:

//获取手机联系人(全部)public ArrayList<Birthday> getPhone(){ArrayList<Birthday> person = new ArrayList<Birthday>();final String[] PHONES_PROJECTION = new String[] {Phone.DISPLAY_NAME, Phone.NUMBER };/** 联系人显示名称 **/final int PHONES_DISPLAY_NAME_INDEX = 0;/** 电话号码 **/final int PHONES_NUMBER_INDEX = 1;ContentResolver resolver = context.getContentResolver();Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,PHONES_PROJECTION, null, null, null);while (phoneCursor.moveToNext()){// 得到手机号码String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX);// 当手机号码为空的或者为空字段 跳过当前循环if (TextUtils.isEmpty(phoneNumber))continue;// 得到联系人名称String contactName = phoneCursor.getString(PHONES_DISPLAY_NAME_INDEX);Birthday birth = new Birthday();birth.setName(contactName);birth.setPhone_number(phoneNumber);person.add(birth);}return person;}//模糊查询联系人
public ArrayList<Birthday> getPhone_num(String name){ArrayList<Birthday> person = new ArrayList<Birthday>();final String[] PHONES_PROJECTION = new String[] {Phone.DISPLAY_NAME, Phone.NUMBER };/** 联系人显示名称 **/final int PHONES_DISPLAY_NAME_INDEX = 0;/** 电话号码 **/final int PHONES_NUMBER_INDEX = 1;ContentResolver resolver = context.getContentResolver();Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,PHONES_PROJECTION,Phone.DISPLAY_NAME+" LIKE ? ",new String[] { "%" + name + "%" }, null);//模糊查询while (phoneCursor.moveToNext()){// 得到手机号码String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX);// 当手机号码为空的或者为空字段 跳过当前循环if (TextUtils.isEmpty(phoneNumber))continue;// 得到联系人名称String contactName = phoneCursor.getString(PHONES_DISPLAY_NAME_INDEX);Birthday birth = new Birthday();birth.setName(contactName);birth.setPhone_number(phoneNumber);person.add(birth);}return person;}

全部多是ArrayList我是为了我的ListView 显示的。

这里有个全部代码,可以获得联系人 头像名称 手机号码:(也包含了一个dialog可以忽略不看)

package com.example.sendmsg;import java.io.InputStream;
import java.util.ArrayList;
import java.util.zip.Inflater;import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.telephony.SmsManager;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;public class PersonListActivity extends Activity{private ListView personlistview;private Builder builder;private ImageView main_image;private TextView title;/** 联系人名称 **/private ArrayList<ContactEntity> mContacts = new ArrayList<ContactEntity>();/** 联系人,手机号码,头像 **/private static final String[] PHONES_PROJECTION = new String[] {Phone.DISPLAY_NAME, Phone.NUMBER, Phone.PHOTO_ID, Phone.CONTACT_ID};/** 联系人显示名称 **/private static final int PHONES_DISPLAY_NAME_INDEX = 0;/** 电话号码 **/private static final int PHONES_NUMBER_INDEX = 1;/** 头像ID **/private static final int PHONES_PHOTO_ID_INDEX = 2;/** 联系人的ID **/private static final int PHONES_CONTACT_ID_INDEX = 3;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.personlist);init();getPhoneContacts();PersonListAdapter adapter = new PersonListAdapter(PersonListActivity.this, mContacts);personlistview.setAdapter(adapter);personlistview.setOnItemClickListener(new PersonListClick());}@TargetApi(Build.VERSION_CODES.HONEYCOMB)@SuppressLint("NewApi")public void init(){personlistview = (ListView) findViewById(R.id.personlistview);main_image = (ImageView) findViewById(R.id.main_image);title = (TextView) findViewById(R.id.title);main_image.setOnClickListener(new BackOnclcik());ActionBar actionBar = getActionBar();  actionBar.hide();//定义一个AlertDialog.Builder对象  builder = new AlertDialog.Builder(this);  }private void getPhoneContacts(){ContentResolver resolver = getContentResolver();// 获取手机联系人Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,PHONES_PROJECTION, null, null, null);if (phoneCursor != null){while (phoneCursor.moveToNext()){// 得到手机号码String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX);// 当手机号码为空的或者为空字段 跳过当前循环if (TextUtils.isEmpty(phoneNumber))continue;// 得到联系人名称String contactName = phoneCursor.getString(PHONES_DISPLAY_NAME_INDEX);// 得到联系人IDLong contactid = phoneCursor.getLong(PHONES_CONTACT_ID_INDEX);// 得到联系人头像IDLong photoid = phoneCursor.getLong(PHONES_PHOTO_ID_INDEX);// 得到联系人头像BitampBitmap contactPhoto = null;// photoid 大于0 表示联系人有头像 如果没有给此人设置头像则给他一个默认的if (photoid > 0){Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,contactid);InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(resolver, uri);contactPhoto = BitmapFactory.decodeStream(input);}else{contactPhoto = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);}ContactEntity mContact = new ContactEntity(contactName,phoneNumber, contactPhoto);mContacts.add(mContact);}phoneCursor.close();}}class PersonListClick implements OnItemClickListener{@Overridepublic void onItemClick(AdapterView<?> arg0, final View arg1, int arg2,long arg3) {// TODO Auto-generated method stub//装载/res/layout/login.xml界面布局  LinearLayout loginForm = (LinearLayout)getLayoutInflater().inflate(R.layout.dialog,null);ImageView headimage = (ImageView) loginForm.findViewById(R.id.headimage);TextView personname = (TextView) loginForm.findViewById(R.id.personname);EditText msgcontent = (EditText) loginForm.findViewById(R.id.msg_text);LinearLayout button1 = (LinearLayout) loginForm.findViewById(R.id.button1);//取消LinearLayout button2 = (LinearLayout) loginForm.findViewById(R.id.button2);//确定//处理内容ImageView image = (ImageView) arg1.findViewById(R.id.personimage);Bitmap bm = ((BitmapDrawable)image.getDrawable()).getBitmap();  headimage.setImageBitmap(bm);TextView text = (TextView) arg1.findViewById(R.id.personname);String name = text.getText().toString();personname.setText(name);Intent intent = getIntent();final String context = intent.getStringExtra("context");msgcontent.setText(context);//按钮点击事件button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubfinish();}});button2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubTextView phone = (TextView) arg1.findViewById(R.id.personnumber);String number = phone.getText().toString();SmsManager manager = SmsManager.getDefault(); ArrayList<String> list = manager.divideMessage(context);  //因为一条短信有字数限制,因此要将长短信拆分  for(String text:list){  manager.sendTextMessage(number, null, text, null, null);  }  Toast.makeText(getApplicationContext(), "发送完毕", Toast.LENGTH_SHORT).show(); }});// 设置对话框显示的View对象  builder.setView(loginForm);  //创建、并显示对话框  builder.create().show(); }}class BackOnclcik implements OnClickListener{@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubfinish();}}}

xml文件:(ListView没有贴上去,大家可以自己写,这里只是一个item)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:paddingLeft="10dp"  android:paddingTop="10dp"  android:paddingBottom="10dp"  android:paddingRight="10dp"  android:descendantFocusability="afterDescendants"><LinearLayout android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal"><ImageView android:layout_width="50dp"android:layout_height="50dp"android:id="@+id/personimage"/><LinearLayout android:layout_width="fill_parent"android:layout_height="fill_parent"android:paddingLeft="5dp"android:orientation="vertical"><TextView android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center_vertical"android:id="@+id/personname"android:textSize="18dp"/><TextView android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center_vertical"android:id="@+id/personnumber"android:textSize="18dp"/></LinearLayout></LinearLayout></LinearLayout>

dialog也可以看看:(这是我写的自定义的对话框)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:padding="15dp"android:orientation="vertical"android:background="#ffffff" ><TextView android:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/dialog_sendText"android:text="@string/dialog_send"android:paddingLeft="10dp"android:textSize="18dp"android:textStyle="bold"/><LinearLayout android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:paddingLeft="10dp"android:paddingTop="10dp"android:paddingBottom="10dp"><ImageView android:layout_width="30dp"android:layout_height="30dp"android:id="@+id/headimage"/><TextView android:layout_width="fill_parent"android:layout_height="30dp"android:gravity="center_vertical"android:paddingLeft="10dp"android:id="@+id/personname"android:textSize="18dp"/></LinearLayout><LinearLayout android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:paddingTop="10dp"><EditText android:layout_width="fill_parent"  android:layout_height="wrap_content"android:id="@+id/msg_text"android:background="@drawable/bg_edittext"  android:padding="5dp"android:layout_marginLeft="5dp"android:layout_marginRight="5dp"  android:textColorHint="#AAAAAA"  android:textSize="15dip"  android:singleLine="true"   android:inputType="textMultiLine"android:gravity="left|top"android:minLines="6"/></LinearLayout><LinearLayout android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:paddingTop="15dp"android:divider="@drawable/layoutline"android:showDividers="middle"><LinearLayout android:layout_width="fill_parent"android:layout_height="30dp"android:layout_weight="1"android:orientation="horizontal"android:id="@+id/button1"android:background="@drawable/conner_"><TextView android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"android:id="@+id/text1"android:text="@string/quxiao"android:textSize="18dp"/></LinearLayout><LinearLayout android:layout_width="fill_parent"android:layout_height="30dp"android:layout_weight="1"android:orientation="horizontal"android:id="@+id/button2"android:background="@drawable/conner_"><TextView android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"android:id="@+id/text2"android:text="@string/queding"android:textSize="18dp"/></LinearLayout></LinearLayout></LinearLayout>

获取手机通讯录联系人(包含模糊查询,dialog自定义,也有一个自定义通知栏)相关推荐

  1. android 通过手机号码查询联系人,android获取手机通讯录联系人

    android获取手机通讯录联系人信息 private void getPhoneContacts() { ContentResolver resolver = this.getContentReso ...

  2. android获取手机通讯录联系人

    android获取手机通讯录联系人信息 private void getPhoneContacts() { ContentResolver resolver = this.getContentReso ...

  3. Android 获取手机通讯录联系人列表(仅供学习)

    老规矩先上效果图: 在Android6.0以后我们需要手动去获取权限,我在程序里已经加入,其他权限可以参考Android 6.0权限管理以及动态申请, 友善提醒:不要用于非法用途哟 下面直接贴代码 1 ...

  4. android sim卡联系人存储格式,Android获取手机通讯录、sim卡联系人及调用拨号界面方法...

    android获取手机通讯录联系人信息 private void getPhoneContacts() { ContentResolver resolver = this.getContentReso ...

  5. android获取机主手机号,Android中 获取手机通讯录和手机机主手机号码——诺诺涂鸦记忆...

    目标:获取手机通讯录联系人的姓名和手机号码,屏幕座机和其他非手机号码,避免号码重复 (注:我只给出了代码思路和用法示例,大家可以自己调用方法debug运行看结果或者自行编写显示结果的代码,根据需要进行 ...

  6. 获取手机通讯录 (含SIM卡中的联系人)

    sim卡UIR content://icc/fdn content://sim/fdn MOTO XT800比较异常,通讯录在: content://contacts/phones 1.使用andro ...

  7. java获取手机通讯录权限_Android读取手机通讯录联系人到自己项目

    本文实例为大家分享了Android读取手机通讯录联系人到项目的具体代码,供大家参考,具体内容如下 一.主界面代码如下: android:layout_width="match_parent& ...

  8. 获取手机通讯录加好友

    获取手机通讯录加好友 工作用到的在app访问通讯录,获取好友信息,发邀请给好友,请求加好友, 类似微信的通讯录加好友效果,简单贴一些代码. xml布局: <span style="fo ...

  9. 获取手机通讯录跟sim卡通讯录

    /** 获取库Phone表字段 **/     private static final String[] PHONES_PROJECTION = new String[] { Phone.DISPL ...

最新文章

  1. Axure 8 window 下载,破解
  2. 【组队学习】【26期】动手学数据分析
  3. 某程序员吐槽自己追求某字节HR,暧昧半年,见面后却被告知是普通朋友!心态已崩!网友:别追HR!道行太深!...
  4. MongoDB学习第一篇 --- Mac下使用HomeBrew安装MongoDB
  5. SAP ABAP如何隐藏你写的程序代码(危险,请小心谨慎)
  6. ansys电力变压器模型_变压器模型……一切是如何开始的?
  7. linux下挂载iso镜像的方法
  8. python 复现AC自动机
  9. 10年老台式机4分钟攻破量子加密算法,此前12年无人破解,核心原理来自25年前...
  10. GIGABYTE技嘉主板内存手动超频教程
  11. [转]CRC8校验详细说明
  12. js 图片类型mage/jpeg, image/bmp, image/gif ,image/png
  13. 【SpringBoot系列】最详细demo-- 集成Swagger2
  14. 转:著名的100个管理定律点评1 -- 管人用人育人留人之道
  15. 指纹存取控制系统的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  16. 计算机的屏幕多少平方,27寸电脑显示器一般长宽各是多少厘米?
  17. Python学习第001课--课后复习
  18. 美国“短命”CEO排行:神人17天即遭解雇
  19. 计算机端口怎么配置波特率,PLC波特率设置
  20. 数据结构与算法综合实验(附完整项目)

热门文章

  1. php base64保存为图片
  2. 数据库查询近一年来的数据(近三个月、近六个月同理)
  3. 最全面的gtest的TEST宏源码解析及自动调度机制
  4. 【秒杀】一、系统设计要点,从卖病鹅说起
  5. Qunar 云原生容器化落地实践
  6. 微信开放平台开发(3) 移动应用微信登录
  7. 使用 MyBatis 的 Maven 插件生成代码
  8. Tomcat配置数据库连接池
  9. 微信小程序开发—(八)canvas绘制图形
  10. O2O、C2C、B2B、B2C是什么意思 有什么区别