如何使用Android在BACKGROUND中发送短信?

我来自iphone开发,你不能在后台发送短信,而不要求用户确认发送。 短信可以发送在Android的背景,以便不需要用户干预?

Solutions Collecting From Web of "如何使用Android在BACKGROUND中发送短信?"

用短信传送通知发送短信作为吐司。

方法调用如下。

sendSMS("98********","This is test message"); 

方法签名如下。

 /* * BroadcastReceiver mBrSend; BroadcastReceiver mBrReceive; */ private void sendSMS(String phoneNumber, String message) { ArrayList<PendingIntent> sentPendingIntents = new ArrayList<PendingIntent>(); ArrayList<PendingIntent> deliveredPendingIntents = new ArrayList<PendingIntent>(); PendingIntent sentPI = PendingIntent.getBroadcast(mContext, 0, new Intent(mContext, SmsSentReceiver.class), 0); PendingIntent deliveredPI = PendingIntent.getBroadcast(mContext, 0, new Intent(mContext, SmsDeliveredReceiver.class), 0); try { SmsManager sms = SmsManager.getDefault(); ArrayList<String> mSMSMessage = sms.divideMessage(message); for (int i = 0; i < mSMSMessage.size(); i++) { sentPendingIntents.add(i, sentPI); deliveredPendingIntents.add(i, deliveredPI); } sms.sendMultipartTextMessage(phoneNumber, null, mSMSMessage, sentPendingIntents, deliveredPendingIntents); } catch (Exception e) { e.printStackTrace(); Toast.makeText(getBaseContext(), "SMS sending failed...",Toast.LENGTH_SHORT).show(); } } 

现在另外两个类SmsDeliveredReceiver,SmsSentReceiver如下。

 public class SmsDeliveredReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent arg1) { switch (getResultCode()) { case Activity.RESULT_OK: Toast.makeText(context, "SMS delivered", Toast.LENGTH_SHORT).show(); break; case Activity.RESULT_CANCELED: Toast.makeText(context, "SMS not delivered", Toast.LENGTH_SHORT).show(); break; } } 

}

现在SMSSentReceiver。

 public class SmsSentReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent arg1) { switch (getResultCode()) { case Activity.RESULT_OK: Toast.makeText(context, "SMS Sent", Toast.LENGTH_SHORT).show(); break; case SmsManager.RESULT_ERROR_GENERIC_FAILURE: Toast.makeText(context, "SMS generic failure", Toast.LENGTH_SHORT) .show(); break; case SmsManager.RESULT_ERROR_NO_SERVICE: Toast.makeText(context, "SMS no service", Toast.LENGTH_SHORT) .show(); break; case SmsManager.RESULT_ERROR_NULL_PDU: Toast.makeText(context, "SMS null PDU", Toast.LENGTH_SHORT).show(); break; case SmsManager.RESULT_ERROR_RADIO_OFF: Toast.makeText(context, "SMS radio off", Toast.LENGTH_SHORT).show(); break; } } 

}

现在权限打开你的AndroidManifest.xml并添加下面的行

 <uses-permission android:name="android.permission.SEND_SMS"/> 

和它完成了…….

是的,你也可以。

 SmsManager sm = SmsManager.getDefault(); sm.sendTextMessage(number, null, message, null, null);