【发布时间】:2018-03-07 13:05:15
【问题描述】:
我创建了一个按钮,点击后会显示电话联系人列表,我希望从列表中选择一个联系人并向他发送消息。
我的应用程序允许您通过手动输入我要链接的号码来发送消息,然后通过“联系人”按钮选择下一个联系人并发送短信
有什么想法吗?
编辑:这里是联系代码
@Override public void onActivityResult(int reqCode, int resultCode, Intent data){ super.onActivityResult(reqCode, resultCode, data);
switch(reqCode)
{
case (PICK_CONTACT):
if (resultCode == Activity.RESULT_OK)
{
Uri contactData = data.getData();
Cursor c = getContentResolver().query(ContactsContract.Data.CONTENT_URI, null, null, null, null);
if (c.moveToFirst())
{
String id = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID));
String hasPhone =
c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (hasPhone.equalsIgnoreCase("1"))
{
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ id,null, null);
phones.moveToFirst();
String cNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
// Toast.makeText(getApplicationContext(), cNumber, Toast.LENGTH_SHORT).show();
}
}
}
}
}
H
contact = (Button) findViewById(R.id.BoutonContact);
contact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
}
});
我的发送短信方法:
受保护的 void envoiSMS() { Log.i("使者短信", "");
String phoneNum = txtPhoneNum.getText().toString();
String message = txtMessage.getText().toString();
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNum, null, message, null, null);
Toast.makeText(getApplicationContext(), "SMS envoyé", Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "Echec à l'envoi du SMS veuillez réessayer", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
【问题讨论】:
-
您如何存储您的联系人?如果它们存储为对象,只需将联系人的电话号码添加为对象中的一个字段,然后在用户选择特定联系人后发送短信时使用该字段。
-
我只是不知道如何存储选择的下一个联系人并随后用于发送短信
-
就像@issathink 建议的那样。只需将电话号码存储在对象中,然后按照他的示例调用
getPhoneNumber方法,该方法从对象中检索号码,然后将其传递给您的 sms 方法
标签: android