0

我正在自动验证OTP。 在低于棒棒糖的版本中,它运行正常 但它在5.0和以上版本中不起作用 我尝试了教程中的代码。 下面是代码:自动OTP验证棒棒糖

IncomingSMS.java

public class IncomingSms extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 

     final Bundle bundle = intent.getExtras(); 
     try { 
      if (bundle != null) 
      { 
       final Object[] pdusObj = (Object[]) bundle.get("pdus"); 
       for (int i = 0; i < pdusObj .length; i++) 
       { 
        SmsMessage currentMessage = SmsMessage.createFromPdu((byte[])                         pdusObj[i]); 
        String phoneNumber = currentMessage.getDisplayOriginatingAddress(); 
        String senderNum = phoneNumber ; 
        String message = currentMessage .getDisplayMessageBody(); 
        try 
        { 
         if (senderNum .equals("+917760882587")) 
         { 
          MainActivity Sms = new MainActivity(); 
          Sms.recivedSms(message); 
         } 
        } 
        catch(Exception e){} 

       } 
      } 

     } catch (Exception e) 
     { 

     } 
    } 

} 

MainActivity.java

public class MainActivity extends AppCompatActivity { 

    static EditText OtpNumber; 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     OtpNumber= (EditText) findViewById(R.id.editText); 
    } 
    public void recivedSms(String message) 
    { 
     try 
     { 
      OtpNumber.setText(message); 
     } 
     catch (Exception e) 
     { 
     } 
    } 

} 

谁能帮它为什么不是棒棒糖及以上设备的正常工作?

+0

“但版本比棒棒糖低,这是行不通的。”“......为什么不为棒棒糖及以上的设备正常工作?” - 哪些版本不适用? –

+0

@MikeM。对不起,我更新了我的问题。它不适用于5.0及以上版本。工作正常低于5.0 –

+0

什么是您的'targetSdkVersion'? –

回答

0

修改这个代码: -

SmsMessage currentMessage = SmsMessage.createFromPdu((byte[])pdusObj[i]); 
+0

它没有工作..我有摩托X玩与Android 6.0 –