Android获取系统联系人

可以先看看思维导图:

Android获取系统联系人_第1张图片


然后我们直接上代码:

界面的xml




    

Java类:MainActivity.java

package com.example.g160628_26_contentresolver_addressbook;

import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    private ContentResolver cr;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //获取内容访问者
        cr = getContentResolver();

    }
    public void getContacts(View view){
        //获取通讯录的数据
        Uri uri=Uri.parse("content://com.android.contacts/raw_contacts");
            Cursor cursor=cr.query(uri,null,null,null,null);
        while (cursor.moveToNext()){
            //拿到ID
            int _id=cursor.getInt(cursor.getColumnIndex("_id"));
            //拿到名字
            String display_name=cursor.getString(cursor.getColumnIndex("display_name"));
            //打印
            Log.i("test",_id+"  "+display_name);

            Uri uriData=Uri.parse("content://com.android.contacts/raw_contacts/"+_id+"/data");
            Cursor cursorData=cr.query(uriData,null,null,null,null);
            while (cursorData.moveToNext()){
                //拿到类型
                String mimetype=cursorData.getString(cursorData.getColumnIndex("mimetype"));
                //拿到电话号码
                String data1=cursorData.getString(cursorData.getColumnIndex("data1"));
                //打印
                Log.i("test","     "+data1);
            }
        }
    }
}


当然还得有权限  所以要配置




    
    

    
        
            
                

                
            
        
    


当然这里也会有些手机行不通   不过这应该是手机中权限的问题吧   一般的都可以


你可能感兴趣的:(Android获取系统联系人)