Android studio 如何在 edittext 中接收短信?

问题描述 投票:0回答:1

我正在构建一个应从指定号码接收文本消息的应用程序。 无论如何在 Edittext 中接收文本消息。这是接收短信的类:

class SMSReceiver extends BroadcastReceiver {
    public static final String ACTION ="android.provider.Telephony.SMS_RECEIVED";
    private static final String SMS_SENDER="123456789";

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent != null && intent.getAction() != null &&
                ACTION.compareToIgnoreCase(intent.getAction()) == 0) {
            Object[] pduArray = (Object[]) intent.getExtras().get("pdus");
            SmsMessage[] messages = new SmsMessage[pduArray.length];
            for (int i = 0; i < pduArray.length; i++) {
                messages[i] = SmsMessage.createFromPdu((byte[]) pduArray[i]);
            }
            // SMS Sender, example: 123456789
            String sms_from = messages[0].getDisplayOriginatingAddress();

            //Lets check if SMS sender is 123456789
            if (sms_from.equalsIgnoreCase(SMS_SENDER)) {
                StringBuilder bodyText = new StringBuilder();

                // If SMS has several parts, lets combine it :)
                for (int i = 0; i < messages.length; i++) {
                    bodyText.append(messages[i].getMessageBody());
                }
                //SMS Body
                String body = bodyText.toString();
                // Lets get SMS Code
                String code  = body.replaceAll("[^0-9]", "");
              
            }
        }
    }
}

android android-edittext broadcastreceiver
1个回答
0
投票

您需要通过Android开发者文档了解BroadcastReceiver。

在您的情况下,您需要从 BroadcastReceiver 获取结果到 Activity,然后您可以将值设置为 EditText。 你可以参考这里.

© www.soinside.com 2019 - 2024. All rights reserved.