我正在使用“ SMS Intent”发送SMS,成功完成SMS后无法退出SMS屏幕。这是源代码。
//Sending SMS to multiple phone numbers
public void sendSms(Context context, String text, String numbers) {
Uri uri = Uri.parse("sms:" + numbers)
Intent intent = new Intent();
intent.setData(uri);
intent.putExtra(Intent.EXTRA_TEXT, text);
intent.putExtra("sms_body", text);
intent.putExtra("address", numbers);
intent.putExtra("exit_on_sent", true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
intent.setAction(Intent.ACTION_SENDTO);
String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(context);
if (defaultSmsPackageName != null) {
intent.setPackage(defaultSmsPackageName);
}
} else {
intent.setAction(Intent.ACTION_VIEW);
intent.setType("vnd.android-dir/mms-sms");
}
try {
context.startActivity(intent);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
}
}
如何关闭SMS活动/屏幕? 谁能帮我解决这个问题?
答案 0 :(得分:1)
成功发送短信后如何关闭短信活动
尝试一下:
private int INVITE_COMPLETED = 1;
String message = "Hello";
Intent sendIntent = new Intent(Intent.ACTION_SENDTO);
sendIntent.setData(Uri.parse("sms:" + "Mobile Number"));
sendIntent.putExtra("sms_body", message);
sendIntent.putExtra("exit_on_sent", true);
startActivityForResult(sendIntent, INVITE_COMPLETED);
以上代码完全为我工作。发送短信后,它会返回我的活动。
您还可以看一下: i found solution here
我已经尝试过使用您的代码。在这里工作正常。
在您的代码下方:
public void sendSms(Context context, String text, String numbers) {
Uri uri = Uri.parse("sms:" + numbers);
Intent intent = new Intent();
intent.setData(uri);
intent.putExtra(Intent.EXTRA_TEXT, text);
intent.putExtra("sms_body", text);
intent.putExtra("address", numbers);
intent.putExtra("exit_on_sent", true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
intent.setAction(Intent.ACTION_SENDTO);
String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(context);
if (defaultSmsPackageName != null) {
intent.setPackage(defaultSmsPackageName);
}
} else {
intent.setAction(Intent.ACTION_VIEW);
intent.setType("vnd.android-dir/mms-sms");
}
try {
startActivityForResult(intent, INVITE_COMPLETED);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
}
}
对于我使用的代码下面的多个数字,它工作正常:
sendSms(MainActivity.this, "Hello", "Num1;Num2");