在Android中发送短信后关闭短信活动/屏幕
成功发送短信后,我无法找到关闭短信屏幕/活动的方法 目前我可以发送短信,但要返回我的应用程序,我必须按back 我希望短信屏幕被解除和控制来我的应用程序自动发送短信后 这是我正在使用的代码:在Android中发送短信后关闭短信活动/屏幕,android,android-intent,android-activity,sms,back,Android,Android Intent,Android Activity,Sms,Back,成功发送短信后,我无法找到关闭短信屏幕/活动的方法 目前我可以发送短信,但要返回我的应用程序,我必须按back 我希望短信屏幕被解除和控制来我的应用程序自动发送短信后 这是我正在使用的代码: Uri uri = Uri.parse("smsto:" + "074********; 074********"); Intent smsSIntent = new Intent(Intent.ACTION_SENDTO, uri); smsSIntent.putExtra("sm
Uri uri = Uri.parse("smsto:" + "074********; 074********");
Intent smsSIntent = new Intent(Intent.ACTION_SENDTO, uri);
smsSIntent.putExtra("sms_body", "iconference sms");
startActivity(smsSIntent);
您必须在
应用程序中创建活动
,该应用程序发送短信
,然后您可以从活动
中调用finish()
,退出活动
。通过使用内置的SMS
屏幕,您无法退出屏幕,除非您自己退出。是一个很好的教程
,用于从应用程序发送短信
我创建了一个单独的活动,并实现了“smsmsmanager”的侦听器,该代码甚至会发送超过160个字符的短信
这是我的密码
private void sendSMS()
{
LoadingView.showLoading(this, false);
String SENT = "SMS_SENT";
PendingIntent sentPI = PendingIntent.getBroadcast(SMSActivity.this, 0, new Intent(SENT), 0);
//--- When the SMS has been sent ---
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent arg1) {
LoadingView.dismissLoading();
switch (getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(SMSActivity.this, "SMS sent", Toast.LENGTH_SHORT).show();
finish();
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
Toast.makeText(SMSActivity.this, "Generic failure", Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
Toast.makeText(SMSActivity.this, "No service", Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
Toast.makeText(SMSActivity.this, "Null PDU", Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
Toast.makeText(getBaseContext(), "Radio off", Toast.LENGTH_SHORT).show();
break;
}
}
}, new IntentFilter(SENT));
ArrayList<PendingIntent> arrPI = new ArrayList<PendingIntent>();
arrPI.add(sentPI);
// Because SMS has more than 160 characters, we will divide it in multiple parts.
SmsManager sms = SmsManager.getDefault();
ArrayList<String> parts =sms.divideMessage(mMessage.getText().toString());
sms.sendMultipartTextMessage(mNumbers, null, parts, arrPI, null);
}
private void sendSMS()
{
LoadingView.showLoading(此为false);
String SENT=“SMS_SENT”;
pendingent sentPI=pendingent.getBroadcast(SMSActivity.this,0,新意图(已发送),0);
//---当短信已经发送---
registerReceiver(新广播接收器(){
@凌驾
公共void onReceive(上下文arg0,意图arg1){
LoadingView.dismissLoading();
开关(getResultCode())
{
案例活动。结果\u正常:
Toast.makeText(SMSActivity.this,“SMS已发送”,Toast.LENGTH_SHORT.show();
完成();
打破
案例smsmsmanager.RESULT\u错误\u一般\u失败:
Toast.makeText(SMSActivity.this,“一般失败”,Toast.LENGTH_SHORT.show();
打破
案例smsmsmanager.RESULT\u错误\u否\u服务:
Toast.makeText(SMSActivity.this,“无服务”,Toast.LENGTH_SHORT.show();
打破
案例smsmsmanager.RESULT_ERROR_NULL_PDU:
Toast.makeText(SMSActivity.this,“Null PDU”,Toast.LENGTH_SHORT.show();
打破
案例smsmsmanager.RESULT\u ERROR\u RADIO\u OFF:
Toast.makeText(getBaseContext(),“无线电关闭”,Toast.LENGTH_SHORT.show();
打破
}
}
},新意向过滤器(已发送));
ArrayList arrPI=新的ArrayList();
arrPI.add(sentPI);
//因为短信有160多个字符,我们将把它分成多个部分。
SmsManager sms=SmsManager.getDefault();
ArrayList parts=sms.divideMessage(mMessage.getText().toString());
sms.sendMultipartTextMessage(mNumbers,null,parts,arrPI,null);
}
您需要使用发送时退出返回应用程序
sendIntent.putExtra("exit_on_sent", true);
此项的可能重复项也会取消父项活动
,它是从Works调用的,但总是返回结果\u