Android开发学习:[21]安卓查询联系人和电话
1、首先我们打开我们下载安装好的android studio,然后新建一个工程如下
![Android开发学习:[21]安卓查询联系人和电话](https://exp-picture.cdn.bcebos.com/e6ae36066b0192dd5f800e401a87031c98c0f017.jpg)
2、然后我们在layout下面对app界面进行布局编写
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.basillee.asus.demo.MainActivity2">
<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25dp"
android:textColor="@android:color/black"
/>
</RelativeLayout>
效果如design视图如下:
![Android开发学习:[21]安卓查询联系人和电话](https://exp-picture.cdn.bcebos.com/3201a8f39187031ce900174f6a86242fa972ec17.jpg)
3、然后我们编写后台代码如下:
package com.basillee.asus.demo;
import android.content.ContentResolver;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.v7.app.ActionBarActivity;
import android.widget.TextView;
public class MainActivity2 extends ActionBarActivity {
private String[]columns={ ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER
, ContactsContract.CommonDataKinds.Phone.CONTACT_ID};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity2);
TextView textView= (TextView) findViewById(R.id.result);
textView.setText(getQueryData());
}
private String getQueryData() {
StringBuilder stringBuilder=new StringBuilder();
ContentResolver resolver=getContentResolver();
Cursor cursor=resolver.query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);
while(cursor.moveToNext()){
int idIndex=cursor.getColumnIndex(columns[0]);
int displayNameIndex=cursor.getColumnIndex(columns[1]);
int id=cursor.getInt(idIndex);
String disPlayName=cursor.getString(displayNameIndex);
Cursor phone=resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,columns[3]+"="+id,null,null);
while(phone.moveToNext()){
int phoneNumberIndex=phone.getColumnIndex(columns[2]);
String phoneNumber=phone.getString(phoneNumberIndex);
stringBuilder.append(disPlayName+";"+phoneNumber+"\n");
}
}
cursor.close();
return stringBuilder.toString();
}
}
![Android开发学习:[21]安卓查询联系人和电话](https://exp-picture.cdn.bcebos.com/aebdff86242fa872e1df0657bfdaf05e4b23e917.jpg)
4、写完之后我们要记得在androidmainifast.xml添加应用权限
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
![Android开发学习:[21]安卓查询联系人和电话](https://exp-picture.cdn.bcebos.com/955ea0e434daf05e33e3c1c2751d96d81919e517.jpg)
5、然后我们运行此项目,点击上面的运行按钮
![Android开发学习:[21]安卓查询联系人和电话](https://exp-picture.cdn.bcebos.com/7830e01d96d818191fe01f7e876efbf203b3de17.jpg)
6、然后我们可以看到结果如下,显示了模拟器里面的联系人姓名和电话号码
![Android开发学习:[21]安卓查询联系人和电话](https://exp-picture.cdn.bcebos.com/a68c126efbf202b3f61721c830f4da5873dadb17.jpg)