gpt4 book ai didi

java - Android:已发送 SMS pendingIntent

转载 作者:太空狗 更新时间:2023-10-29 14:09:29 26 4
gpt4 key购买 nike

这是我在 Android 应用程序中发送 SMS 消息的代码:

private void SendSMS(final String message,final String phoneNumber)
{
SmsManager sms = SmsManager.getDefault();
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED), 0);
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent arg1)
{
switch (getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "SMS sent", Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
Toast.makeText(getBaseContext(), "Generic failure", Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
Toast.makeText(getBaseContext(), "No service", Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
Toast.makeText(getBaseContext(), "Null PDU", Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
Toast.makeText(getBaseContext(), "Radio off", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}, new IntentFilter(Constants.SENT));
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent arg1)
{
switch (getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "SMS delivered", Toast.LENGTH_SHORT).show();
break;
case Activity.RESULT_CANCELED:
Toast.makeText(getBaseContext(), "SMS not delivered", Toast.LENGTH_SHORT).show();
break;
}
}
}, new IntentFilter(DELIVERED));
try{
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
}catch(Exception e){
e.printStackTrace();
Toast.makeText(getApplicationContext(), EXCEPTION, Toast.LENGTH_LONG).show();
}
}

一切正常,我可以发送 SMS,并且在发送和传递 SMS 时触发我的两个广播接收器。在我的国家/地区,必须支付每条已发送消息的确认费用,即使在我的设备上我可以免费发送大量消息,我的信用也会降低。有一些设置我错过了,我必须设置以避免传递消息确认,或者我必须删除“传递的”pendingIntent 如果这确实是问题所在?你能给我更多的信息吗?谢谢

最佳答案

如果您不想请求交付,则必须将 null 作为最后一个参数传递

sms.sendTextMessage(phoneNumber, null, message, sentPI, null);

安卓文档

如果不为 NULL,则在将消息传递给收件人时广播此 PendingIntent。状态报告的原始 pdu 在扩展数据(“pdu”)中。

因此,如果您设置 NULL,它将不会请求任何交付。检查我的设备。

关于java - Android:已发送 SMS pendingIntent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30152751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com