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

被折叠的 条评论
为什么被折叠?



