Как импортировать проект Gitlab в Android Studio

Я не рекомендую использовать сторонние библиотеки для автоматического извлечения OTP из SMS-сообщений. Это можно сделать легко, если у вас есть базовое понимание Broadcast Receiver и как оно работает. Просто попробуйте следующий подход:

Шаг 1) Создайте единый интерфейс, т.е. SmsListner

package com.wnrcorp.reba;
public interface SmsListener{
public void messageReceived(String messageText);}

Шаг 2) Создайте единый широковещательный приемник, то есть SmsReceiver

package com.wnrcorp.reba;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
public class SmsReceiver extends BroadcastReceiver {
private static SmsListener mListener;
Boolean b;
String abcd,xyz;
@Override
public void onReceive(Context context, Intent intent) {
Bundle data  = intent.getExtras();
Object[] pdus = (Object[]) data.get("pdus");
    for(int i=0;i

Шаг 3) Добавить прослушиватель, т. е. широковещательный приемник в файле манифеста android

    
        
            
        

и добавить разрешение

Заключительный шаг 4) Активность, в которой вы собираетесь автоматически выбирать otp, когда он получен во входящих. В моем случае я извлекаю otp и устанавливаю в поле edittext.

public class OtpVerificationActivity extends AppCompatActivity {
EditText ed;
TextView tv;
String otp_generated,contactNo,id1;
GlobalData gd = new GlobalData();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_otp_verification);
    ed=(EditText)findViewById(R.id.otp);
    tv=(TextView) findViewById(R.id.verify_otp); 
    /*This is important because this will be called every time you receive 
     any sms */            
 SmsReceiver.bindListener(new SmsListener() {
        @Override
        public void messageReceived(String messageText) {
            ed.setText(messageText);     
        }
    });
    tv.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try
            {
                InputMethodManager imm=
  (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);                    
  imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),0);
            }
            catch(Exception e)
            {}           
            if (ed.getText().toString().equals(otp_generated))
            {
                Toast.makeText(OtpVerificationActivity.this, "OTP Verified 
       Successfully !", Toast.LENGTH_SHORT).show();           
             }
    });
   }
}

Файл макета для OtpVerificationActivity




   
        
        
        
        
        
        

Скриншоты для проверки OTP Активность, в которой вы выбираете OTP как сообщения, полученные сообщениями

0
задан Zoe 2 March 2019 в 10:20
поделиться