public class MainActivity extends AppCompatActivity {
    TextView message;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        message = (TextView) findViewById(R.id.textView);
        Button button = (Button) findViewById(R.id.button);
        assert button != null;
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String phoneNumber = null;
                String NUMBER = ContactsContract.CommonDataKinds.Phone.NUMBER;
                ContentResolver cr = getContentResolver();
                Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
                if (cur.getCount() > 0) {
                    while (cur.moveToNext()) ;
                    {
                        String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
                        String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                        if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.
                                Contacts.HAS_PHONE_NUMBER))) > 0) {
                            //Contacts 테이블의 ID 값 을 가지고 Data 테이블의 정보를 찾아오는 방식.
                            message.append("\nNAME:" + name);
                            Cursor pCur = cr.query(ContactsContract.Data.CONTENT_URI, null,
                                    ContactsContract.Data.CONTACT_ID
                                            + "=?"
                                            + " AND "
                                            + ContactsContract.Data.MIMETYPE
                                            + "='"
                                            + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE
                                            + "'", new String[]{id}, null);
                            //전화번호 데이터 추출!!!!
                            while (pCur.moveToNext()) {
                                phoneNumber = pCur.getString(pCur.getColumnIndex(NUMBER));
                                message.append("\nPhHONE NUMBER :" + phoneNumber);
                            }
                            pCur.close();
                            message.append("\n\n");
                        }
                    }
                }
            }
        });
    }
}