我希望拨打用户联系人列表。然后,他们将选择联系人发送短信。我很难理解如何在发送短信时保存联系人。任何帮助,将不胜感激。这是我目前的代码。
package com.example.practiceapp;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
public class Dollar extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dollar);
}
//@Override
//public boolean onCreateOptionsMenu(Menu menu) {
//getMenuInflater().inflate(R.menu.activity_dollar, menu);
//return true;
//}
public void contacts(View view) {
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
int PICK_CONTACT=0;
startActivityForResult(intent, PICK_CONTACT);
}
}
答案 0 :(得分:0)
我使用了Android Essentials: Using the Contact Picker
它提供了一个选择电子邮件地址的工作示例。
使用联系人选择器获取联系人ID后的密钥代码如下:
// query for everything email
cursor = getContentResolver().query(
Email.CONTENT_URI, null,
Email.CONTACT_ID + "=?",
new String[]{id}, null);
其中id
是从联系人选择器返回的联系人ID(如教程中所述)。要获取电话数据,您需要将其更改为:
// query for everything phone
cursor = getContentResolver().query(
Phone.CONTENT_URI, null,
Phone.CONTACT_ID + "=?",
new String[]{id}, null);
请注意,联系人可以拥有多个电话号码,因此您必须构建第二个对话框以选择特定的电话号码。
ArrayList<String> phoneNumbers = new ArrayList<String>();
String name = "";
String number = "";
int nameIdx = cursor.getColumnIndex(Phone.DISPLAY_NAME);
int numberIdx = cursor.getColumnIndex(Phone.DATA);
// Get all phone numbers for the person
if (cursor.getCount() > 0) {
cursor.moveToFirst();
do {
name = cursor.getString(nameIdx); // get the name from the cursor
number = cursor.getString(numberIdx); // get the phone number from the cursor
phoneNumbers.add(number);
Log.v(DEBUG_TAG, "Got name: " + name + " phone: "
+ number);
} while (cursor.moveToNext());
showPhoneNumberSelectionDialog(name,phoneNumbers);
} else {
Log.w(DEBUG_TAG, "No results");
}
(或者您可以根据需要调整上面代码中的光标读数)
private void showPhoneNumberSelectionDialog(String name,
final ArrayList<String> phoneNumbers) {
1. Build an AlertDialog to pick a number from phoneNumbers (with'name' in the title);
2. Send an SMS to the number
}
构建警报对话框并不难,但涉及将ArrayList转换为String数组。见Convert ArrayList to String []
发送短信相当容易。网上有很多例子。
这个SO Q&amp; A(How to read contacts on Android 2.0)也是很好的背景,但最后我没有使用它的任何代码。