gpt4 book ai didi

安卓短信发送状态

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

我需要在我的 Android 应用程序中实现一个功能来发送 SMS 消息。我找到了很多关于此的教程,但无法获得交付状态(失败或确定)。以下是我的短信方法。

 private void sendSmsMessageWithStatus(String phoneNumber, String Msg)
{
String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";

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 context, Intent intent)
{
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;
}
}

}, new IntentFilter(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));

SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, Msg, sentPI, deliveredPI);
}

我正在检查我的 google nexus 4 手机并正确接收短信。

我收到消息“SMS 已发送”消息,但从未收到“SMS 已发送”消息,即使我向其他号码发送了成功的消息也是如此。

当我检查模拟器时也是同样的事情(显示“SMS sent”消息但不是传递状态消息“SMS not delivered”)。

在 list 文件中我添加了权限

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

还有我的开发SDK版本如下。

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />

没有人知道我做错了什么没有得到交货状态。根据我的代码“SMS 已送达”或“SMS 未送达”消息。提前致谢!!!

编辑

短信发送权限也已添加到 list 中。错过了有问题的提及...

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

最佳答案

将此权限添加到您的 list 中:

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

关于安卓短信发送状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30327042/

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