Android 查看联系人电话和姓名(ContentProvider)

1.介绍

2.使用方法

3.在AndroidManifest.xml文件中添加相关设置

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

4.XML布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity"
    android:gravity="center_horizontal">
    <!--android:gravity="center_horizontal 水平中心对齐-->
    
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="您手机中的联系人包括:" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/textView3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="TextView" />
        </LinearLayout>
    </ScrollView>

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="获取联系人" />

</LinearLayout>

5.java后台

package com.lucky.test42contentprovider;

import android.content.ContentResolver;
import android.database.Cursor;
import android.provider.ContactsContract;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

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

public class MainActivity extends AppCompatActivity {
    Button button1;
    TextView textView1;
    List<String> list; //定义一个集合用来存放用户名和电话号码

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button1=findViewById(R.id.button);
        textView1=findViewById(R.id.textView3);
        list=new ArrayList<>();

        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ContentResolver contentResolver=getContentResolver(); //获取手机中的通讯录
                Cursor cursor=contentResolver.query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);//获取联系人
                while (cursor.moveToNext()){
                    String name=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); //获取联系人姓名
                    list.add("\n姓名:"+name);
                    //获取电话号码
                    int id=cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts._ID));
                    Cursor cursor1=contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+id,null,null);
                    while (cursor1.moveToNext()){
                        String phonenumber=cursor1.getString(cursor1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                        list.add("\n"+phonenumber); //将电话号码添加到集合中
                    }
                }

                textView1.setText("");
                for (int i = 0; i <list.size() ; i++) {
                    textView1.append(list.get(i));
                }
            }
        });
    }
}

猜你喜欢

转载自www.cnblogs.com/luckyplj/p/10523666.html
今日推荐