Android 获取联系人电话号码

本文将介绍如何在Android应用中请求权限并获取用户的联系人电话号码,涉及到的关键技术包括Android权限管理以及读取联系人数据。
<!-- 读取联系人权限 -->   
<uses-permission android:name="android.permission.READ_CONTACTS"/>  
<!-- 拨打电话权限 -->  

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


private final int SEND_SMS_TYPE = 222
private TextView phoneEd;

//发起请求进入联系人
Intent i = new Intent();
i.setAction(Intent.ACTION_PICK);
i.setData(ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(i, SEND_SMS_TYPE);
//获取返回的来联系人电话

 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
            case SEND_SMS_TYPE:
                switch (requestCode) {
                    case SEND_SMS_TYPE:
                        if (data == null) {
                            return;
                        }
                        String phoneNumber = null;
                        Uri contactData = data.getData();
                        if (contactData == null) {
                            return;
                        }
                        ContentResolver resolver = RechargeActivity.this.getContentResolver();
                        Cursor cursor = resolver.query(contactData, null, null, null, null);
                        if (cursor.moveToFirst()) {
//                  String name = cursor.getString(cursor
//                          .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                            String hasPhone = cursor
                                    .getString(cursor
                                            .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
                            String id = cursor.getString(cursor
                                    .getColumnIndex(ContactsContract.Contacts._ID));
                            if (hasPhone.equalsIgnoreCase("1")) {
                                hasPhone = "true";
                            } else {
                                hasPhone = "false";
                            }
                            if (Boolean.parseBoolean(hasPhone)) {
                                Cursor phones = resolver.query(
                                        ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                        null,
                                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID
                                                + " = " + id, null, null);
                                while (phones.moveToNext()) {
                                    phoneNumber = phones
                                            .getString(phones
                                                    .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                                    phoneEd.setText(phoneNumber);
                                }
                                phones.close();
                            }
                        }
//                sendAdrress = phoneNumber;
//                SEND_TYPE = SEND_SMS_TYPE;
//                send_text_SMS.setText("发送短信" + " : " + phoneNumber);

                        break;

                }
                break;
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值