Android发送短信后返回值是什么?

Android发送短信返回值通常是一个整型值,表示操作的结果。常见的返回值包括:,SMS_SUCCESS(值为0):短信发送成功。,ERROR_INVALID_ARGUMENTS(值为-1):无效的参数。,ERROR_NO_SMS_PERMISSION(值为-2):没有短信权限。,ERROR_PHONE_NUMBER_BLOCKED(值为-3):电话号码被阻止。,ERROR_NULL_PDU(值为-4):PDU为空。,ERROR_RADIO_NOT_AVAILABLE(值为-5):无线电不可用。,ERROR_CALL_IN_PROGRESS(值为-6):通话正在进行中。,ERROR_SIM_ABSENT(值为-7):SIM卡不存在。,ERROR_SIM_FULL(值为-8):SIM卡已满。,ERROR_NETWORK_BUSY(值为-9):网络繁忙。,ERROR_GENERIC_FAILURE(值为-10):通用失败。

Android发送短信返回值详解

在Android应用开发中,发送短信是一项常见的功能需求,为了实现这一功能,开发者通常会使用SmsManager类来发送短信,了解发送短信的返回值对于处理发送状态和错误至关重要,本文将详细解析Android发送短信的返回值,并通过单元表格的形式展示不同返回值的含义及其处理方法。

Android发送短信后返回值是什么?

一、SmsManager.RESULT_*常量解析

在Android中,SmsManager.RESULT_常量用于表示发送短信的结果,以下是一些关键的常量及其含义:

常量名称 含义
SmsManager.RESULT_SMS_SUCCESS 短信成功发送到目标号码。
SmsManager.RESULT_MMS_SUCCESS 多媒体短信(MMS)成功发送到目标号码。
SmsManager.RESULT_ERROR_NO_SERVICE 设备没有信号或未连接到移动网络。
SmsManager.RESULT_ERROR_NULL_PDU 提供的PDU为null,无法发送短信。
SmsManager.RESULT_ERROR_GENERIC_FAILURE 发送短信时发生未知错误。
SmsManager.RESULT_ERROR_RADIO_OFF 设备的无线功能被关闭,无法发送短信。
SmsManager.RESULT_ERROR_SIM_ABSENT 设备中没有插入SIM卡,无法发送短信。
SmsManager.RESULT_ERROR_SIM_LOCKED SIM卡被锁定,无法发送短信。
SmsManager.RESULT_ERROR_NO_MEMORY 设备内存不足,无法发送短信。
SmsManager.RESULT_ERROR_OOM 由于内存溢出,无法发送短信。
SmsManager.RESULT_ERROR_UNABLE_TO_CONNECT 无法连接到移动网络,可能是由于网络问题或设备设置问题。

二、发送短信示例代码及返回值处理

以下是一个使用SmsManager发送短信的示例代码,以及如何处理不同的返回值:

Android发送短信后返回值是什么?

import android.telephony.SmsManager;
import android.content.Context;
import android.widget.Toast;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String phoneNumber = "1234567890"; // 替换为目标手机号码
        String message = "Hello, this is a test SMS!";
        sendSMS(phoneNumber, message);
    }
    private void sendSMS(String phoneNumber, String message) {
        SmsManager smsManager = SmsManager.getDefault();
        smsManager.sendTextMessage(phoneNumber, null, message, null, null);
    }
}

在上述代码中,我们调用了SmsManagersendTextMessage方法来发送短信,这个方法接受五个参数:目标手机号、短信中心号码(通常为null)、短信内容、一个PendingIntent(用于接收发送状态),以及一个Handler(用于处理超时),在这个例子中,我们将PendingIntent和Handler都设置为null,因为我们将在后续步骤中手动检查发送状态。

三、处理发送状态

为了处理发送状态,我们需要创建一个BroadcastReceiver来监听发送结果,以下是如何创建和使用BroadcastReceiver来处理发送状态的示例代码:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsManager;
import android.widget.Toast;
public class SmsSentReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        switch (getResultCode()) {
            case Activity.RESULT_OK:
                Toast.makeText(context, "SMS sent successfully!", Toast.LENGTH_SHORT).show();
                break;
            case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                Toast.makeText(context, "Generic failure", Toast.LENGTH_SHORT).show();
                break;
            // 其他错误处理...
            default:
                Toast.makeText(context, "Error code: " + getResultCode(), Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

在MainActivity中注册这个BroadcastReceiver:

Android发送短信后返回值是什么?

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    String phoneNumber = "1234567890"; // 替换为目标手机号码
    String message = "Hello, this is a test SMS!";
    sendSMS(phoneNumber, message);
}
private void sendSMS(String phoneNumber, String message) {
    SmsManager smsManager = SmsManager.getDefault();
    Intent sentIntent = new Intent(this, SmsSentReceiver.class);
    PendingIntent piSend = PendingIntent.getBroadcast(this, 0, sentIntent, 0);
    smsManager.sendTextMessage(phoneNumber, null, message, piSend, null);
}

通过这种方式,我们可以捕获并处理短信发送的各种结果,从而为用户提供更好的反馈和错误处理机制。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1264408.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-11-04 02:22
下一篇 2024-11-04 02:25

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入