我想通过环聊发送邮件时设置电话号码。
当我使用短信时,可以按照以下方式完成。
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setData(Uri.parse("sms:"));
sendIntent.putExtra("sms_body", message);
sendIntent.putExtra("adress", phoneNumber);
context.startActivity(sendIntent);
但我不知道在环聊中如何通过电话号码设置电话号码或目标。 这是我目前使用环聊的代码。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) //At least KitKat
{
String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(context);
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, message);
if (defaultSmsPackageName != null)
{
sendIntent.setPackage(defaultSmsPackageName);
}
context.startActivity(sendIntent);
}
EDITED ..!
我从here找到了解决方案。 请参阅@Roberto B。的解决方案。
答案 0 :(得分:1)
我最近使用了以下代码,它似乎符合您的要求:
public static void sendSMS(Activity activity, String message, String phoneNumber){
Intent smsIntent;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
smsIntent = new Intent(Intent.ACTION_SENDTO);
//Ensures only SMS apps respond
smsIntent.setData(Uri.parse("smsto:" + phoneNumber));
//No resolvable activity
if (smsIntent.resolveActivity(activity.getPackageManager()) == null) {
return;
}
}else{
//Old way of accessing sms activity
smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("address", phoneNumber);
smsIntent.putExtra("exit_on_sent", true);
}
smsIntent.putExtra("sms_body", message);
activity.startActivity(smsIntent);
}