我想要阅读短信,并获得一个验证码,并自动认证。
我找到了这个package并尝试了它的示例代码。它似乎不起作用。有没有其他方法可以做到这一点?也许我用错了。代码如下:
String _verificationCode;
SmsReceiver _smsReceiver;
@override
void initState() {
super.initState();
if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
_smsReceiver = SmsReceiver(onSmsReceived);
}
void onSmsReceived(String message) =>
setState(() => _verificationCode = message.split(" ").elementAt(2));
void _startListening() => _smsReceiver.startListening();
.
.
.
} else if (url.toLowerCase().contains('verify')) {
if (_verificationCode == null) {
_startListening();
} 这几乎与文档中的代码相同。
发布于 2021-09-08 18:17:21
我也遇到了同样的问题,用于收听传入消息的flutter包,但对我来说什么都不起作用。
因此,我在安卓系统中创建了一个BroadCastReceiver,在Custom platform-specific code的帮助下,我将其与flutter连接起来。
BroadCastReceiver
public class MyMsgReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(SMS_RECEIVED_ACTION.equals
("android.provider.Telephony.SMS_RECEIVED")){
for (SmsMessage smsMessage : Telephony.Sms.Intents.getMessagesFromIntent(intent))
{
msg = smsMessage.getMessageBody();
user = smsMessage.getDisplayOriginatingAddress();
}
}
}
};将此接收器添加到清单文件(app/src/main/AndroidManifest.xml)
<receiver
android:name=".MyMsgReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>添加对app/src/debug/AndroidManifest.xml的权限
<uses-permission android:name="android.permission.RECEIVE_SMS"/>希望这个方法能帮助一些人!
发布于 2020-10-12 02:56:02
使用这个包:flutter_sms
然后创建一个SMS接收器实例。
SmsReceiver receiver = new SmsReceiver();
receiver.onSmsReceived.listen((SmsMessage msg)
if(sender == "56789"){
textEditorController.text = msg.message;
}
);https://stackoverflow.com/questions/64307709
复制相似问题