访问联系人列表,搜索联系人,提取其号码,最后拨号(android)
我的应用程序从用户那里获取联系人姓名,然后它应该在联系人列表中搜索该联系人是否存在。如果是,则拔出其号码,然后自动拨打此号码 我似乎不明白如何查找联系人姓名,然后提取其号码(如果存在)访问联系人列表,搜索联系人,提取其号码,最后拨号(android),android,Android,我的应用程序从用户那里获取联系人姓名,然后它应该在联系人列表中搜索该联系人是否存在。如果是,则拔出其号码,然后自动拨打此号码 我似乎不明白如何查找联系人姓名,然后提取其号码(如果存在) public boolean seekAction(String s) { Intent callIntent= new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts")); callIntent.set
public boolean seekAction(String s)
{
Intent callIntent= new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts"));
callIntent.setType(Phone.CONTENT_TYPE);
if (callIntent.resolveActivity(getPackageManager()) != null)
{
startActivityForResult(callIntent, CONTACT_CALL_CODE_REQUEST);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(resultCode == RESULT_OK)
{
if(requestCode == CONTACT_CALL_CODE_REQUEST)
{
// Get the URI and query the content provider for the phone number
Uri contactUri = data.getData();
String[] s = new String[]{Phone.NUMBER};
Cursor cursor = getContentResolver().query(contactUri, s, null, null, null);
// If the cursor returned is valid, get the phone number
if (cursor != null && cursor.moveToFirst())
{
int numberIndex = cursor.getColumnIndex(Phone.NUMBER);
String number = cursor.getString(numberIndex);
// Do something with the phone number
Log.i("actionCallResult()", "phone number= "+number);
Intent intent = new Intent(Intent.ACTION_DIAL);//calling intent
intent.setData(Uri.parse("tel:" + number));
if (intent.resolveActivity(getPackageManager()) != null)
{
startActivity(intent);
}
}
}
}
super.onActivityResult(requestCode, resultCode, data);
}
我有这个代码,但它不能帮助我按姓名查找联系人
编辑:
我编写了一个简单的代码,用于查找名为“Mike Peterson”的联系人,如果找到联系人,则发送一条带有联系人号码的消息,否则发送一条“not found”消息 此代码是原始的,决不应服务于任何专业实现。更好的方法是使用自定义
异步任务
和阵列存储
请注意,以下权限声明必须出现在您的清单中:
<uses-permission android:name="android.permission.READ_CONTACTS" />
我编写了一个简单的代码,用于查找名为“Mike Peterson”的联系人,如果找到联系人,则发送一条带有联系人号码的消息,否则发送一条“not found”消息 此代码是原始的,决不应服务于任何专业实现。更好的方法是使用自定义
异步任务
和阵列存储
请注意,以下权限声明必须出现在您的清单中:
<uses-permission android:name="android.permission.READ_CONTACTS" />
我可以问一下,它如何在不使用意图的情况下在联系人列表中搜索?如何将其用于自定义异步任务和阵列存储@Sahar Avr在“编辑”下查看我的相关代码:我能问一下它如何在不使用意图的情况下在联系人列表中搜索吗?如何将其用于自定义异步任务和阵列存储@Sahar Avr在编辑下查看我的相关代码:
String str = "Mike Peterson"; // As an example
Cursor contacts = getApplicationContext().getContentResolver()
.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
boolean contactFound = false;
while (contacts.moveToNext()) {
String contactName =
contacts.getString(contacts.getColumnIndex
(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
if (contactName.equals(str)) {
contactFound = true;
break;
}
}
Toast.makeText(getApplicationContext(), contactFound ?
contacts.getString(contacts.getColumnIndex
(ContactsContract.CommonDataKinds.Phone.NUMBER)) : "Contact not found!"
, Toast.LENGTH_LONG).show();
contacts.close();