我來自iphone開發,你不能在後臺發送短信而不要求用戶確認發送。短信可以在Android的背景發送,以便不需要用戶干預?如何在使用Android的BACKGROUND中發送短信?
9
A
回答
16
用SMS-Delivery通知發送SMS作爲吐司。
方法調用如下。
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"/>
和對其做.......
2
16
是的,你也可以。
SmsManager sm = SmsManager.getDefault();
sm.sendTextMessage(number, null, message, null, null);
0
最好的答案是好的,但上方API級別23您將需要務實地獲得權限。否則每次都會提示權限。
private static final int PERMISSION_REQUEST_CODE = 1;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
if (checkSelfPermission(Manifest.permission.SEND_SMS)
== PackageManager.PERMISSION_DENIED) {
Log.d("permission", "permission denied to SEND_SMS - requesting it");
String[] permissions = {Manifest.permission.SEND_SMS};
requestPermissions(permissions, PERMISSION_REQUEST_CODE);
}
}
相關問題
- 1. 如何在Android中發送長短信?
- 2. 如何在android中發送短信
- 3. 在Android中發送短信,
- 4. 在Android中發送短信
- 5. 在Android中發送短信
- 6. 如何使用短信管理器將短信發送到android
- 7. &符號在短信 - 短信發送android
- 8. android如何發送短信和彩信?
- 9. Android發送短信
- 10. Android發送短信
- 11. 如何在Android中使用Twilio Api發送短信
- 12. 如何在android中使用phonegap 2.3.0發送短信?
- 13. 如何在android中使用WAP發送短信?
- 14. 發送使用短信管理短信羣發android系統
- 15. 如何在短信發送短信發送事件短信應用程序在Android操作系統
- 16. 在Android中發送羣發短信
- 17. 跟蹤在Android中發送的短信
- 18. 如何從iPad發送短信(短信)
- 19. Android:更新發送短信的方法發送短信
- 20. 如何防止「短信發送」/ Android上的短信?
- 21. Android:使用互聯網發送短信
- 22. 使用Android發送全長短信
- 23. 使用Phonegap/Cordova發送Android短信3.1
- 24. 使用Twilio發送短信android
- 25. 如何使用Java發送短信
- 26. 如何使用sendTextMessage發送短信
- 27. 如何使用textlocal API發送短信..?
- 28. Android如何發送Flash(通知)短信?
- 29. Flash Air for Android,如何發送短信
- 30. 在android中發送獨特的短信和接收looong短信
退房這個 http://stackoverflow.com/questions/5671564/how-to-send-sms-message-on-android-device-in-the-background – sealz 2011-06-15 17:02:34