2016-11-16 37 views
0

一切工作正常,我也在我的设备上获得otp,但我面临的问题不会自动设置在我的editText上我是新的android,这里是我的getSMSclass。无法在我的EditText上自动设置OTP消息

public class GetIncomingSms extends BroadcastReceiver 
{ 
SmsMessage currentMessage; 
final SmsManager sms = SmsManager.getDefault(); 

@Override 
public void onReceive(Context context, Intent intent) 
{ 
    if(intent.getAction() == "android.provider.Telephony.SMS_RECEIVED") { 


     final Bundle bundle = intent.getExtras(); 

     try { 
      if (bundle != null) { 
       final Object[] pdusObj = (Object[]) bundle.get("pdus"); 
       for (int i = 0; i < pdusObj.length; i++) { 

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
         String format = bundle.getString("format"); 
         currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i], format); 
        } else { 
         currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]); 
        } 

        String phoneNumber = currentMessage.getDisplayOriginatingAddress(); 
        String senderNum = phoneNumber; 
        String message = currentMessage.getDisplayMessageBody(); 

        try { 
         if (senderNum.equals("'myphonenumber'")) { 
          Otp Sms = new Otp(); 
          Sms.recivedSms(message); 
                 } 
        } catch (Exception e) { 
        } 
       } 
      } 
     } catch (Exception e) { 
     } 

    } 
} 

} 

和我的OTP类,我想设置我的短信我EDITTEXT

public void recivedSms(String message) 
{ 
     System.out.println("Register Otp = "+message); 
     otp.setText(message); 

} 

回答

0

检查这个网站我这里是如何得到OTP自动

http://androiddhina.blogspot.in/2015/06/reading-incoming-message-automatically-to-verify-OTP.html

和变化您的

Otp Sms = new Otp(); 
Sms.recivedSms(message); 

Otp.recivedSms(message); 

,并要设置的EditText OTP请确保它是静态的:

public void recivedSms(String message) 
{ 
    System.out.println("Register Otp = "+message); 
    otp.setText(message); 
} 

public static void recivedSms(final String message) 
{ 
    otp.setText(message); 
} 
+0

感谢。它非常有帮助 – andy02

相关问题