首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在颤动中阅读来电短信

如何在颤动中阅读来电短信
EN

Stack Overflow用户
提问于 2020-10-12 02:37:15
回答 2查看 408关注 0票数 0

我想要阅读短信,并获得一个验证码,并自动认证。

我找到了这个package并尝试了它的示例代码。它似乎不起作用。有没有其他方法可以做到这一点?也许我用错了。代码如下:

代码语言:javascript
复制
  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();
                } 

这几乎与文档中的代码相同。

EN

回答 2

Stack Overflow用户

发布于 2021-09-08 18:17:21

我也遇到了同样的问题,用于收听传入消息的flutter包,但对我来说什么都不起作用。

因此,我在安卓系统中创建了一个BroadCastReceiver,在Custom platform-specific code的帮助下,我将其与flutter连接起来。

BroadCastReceiver

代码语言:javascript
复制
   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)

代码语言:javascript
复制
 <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的权限

代码语言:javascript
复制
<uses-permission android:name="android.permission.RECEIVE_SMS"/>

希望这个方法能帮助一些人!

票数 2
EN

Stack Overflow用户

发布于 2020-10-12 02:56:02

使用这个包:flutter_sms

然后创建一个SMS接收器实例。

代码语言:javascript
复制
SmsReceiver receiver = new SmsReceiver();

receiver.onSmsReceived.listen((SmsMessage msg)
    if(sender == "56789"){
       textEditorController.text = msg.message;
}    
);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64307709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档