java发送和接收短信以验证手机号码
我正在尝试不使用第三方进行手机号码验证。为此,我的逻辑是:-
- 用户使用国家/地区代码输入其手机号码
- 当他们点击verify按钮时,intent会向用户定义的手机号码发送一条带有随机唯一id的短信
- 之后,应用程序广播将等待2分钟,当它收到短信,然后用户可以登录或注册
这个逻辑是正确的还是需要修改
要发送短信,我正在使用此代码,但不知道如何接收和验证该号码
String phoneNumber = "9999999999";
String smsBody = "Message from the API";
// Get the default instance of SmsManager
SmsManager smsManager = SmsManager.getDefault();
// Send a text based SMS
smsManager.sendTextMessage(phoneNumber, null, smsBody, null, null);
更新:-
未在三星设备上接收信息
# 1 楼答案
首先,我生成一个范围在10000到99999之间的随机数
接下来,我会显示一个弹出窗口,提示用户手机将发送一条消息来验证号码。这是使用
AlertDialog
完成的以上代码说明:
在用户确认发送短信后,会向输入的号码发送带有代码的短信,该号码应该是用户自己使用的号码。因此,我们将等待一条带有代码的短信,接收短信并读取其内容,我们将创建一个
BroadCastReceiver
来监听传入的短信现在我们还需要启动一个计时器,这样我们只需要等待2分钟的短信,所以我们启动一个
CountDownTimer
2分钟,在2分钟结束时,倒计时将注销接收器。即使在收到的短信中收到了代码,接收者也会被注销,这样我们就可以释放资源了readSMS的代码,如果发现该代码为true,则返回,否则返回false
要发送短信,请使用以下方法:
在AndroidManifest中。xml您需要具有以下权限:
# 2 楼答案
您可以使用内容提供商访问sms收件箱