Я знаю, что этот вопрос задан много раз, но все же я не могу решить свою проблему. Я хочу получить OTP из SMS в editText Activity.For это я использую широковещательный приемник.Получить сообщение от радиоприемника к действию
Код для радиовещательного приемника:
private static final String TAG = ReceiveSms.class.getSimpleName();
private SmsReceivedListner smsReceived = null;
@Override
public void onReceive(Context context, Intent intent) {
//code to get sms....
Log.e(TAG, "OTP received: " + verificationCode);
if (smsReceived != null) {
smsReceived.onSmsReceived(verificationCode);
} else {
if (Constants.isLoggingEnable) {
Logger.logError(TAG, "Sms listner is null");
}
}
}
}
} catch (Exception e) {
Log.e(TAG, "Exception: " + e.getMessage());
}
}
public void setOnSmsReceivedListener(Context context) {
this.smsReceived = (SmsReceivedListner) context;
}
активность Код
public class EnterOtp extends MasterActivity implements View.OnClickListener, OnTaskComplete, SmsReceivedListner {
private static final String TAG = EnterOtp.class.getSimpleName();
private Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.otp);
context = this;
init();
}
private void init() {
setUpToolbar();
receiveSms = new ReceiveSms();
receiveSms.setOnSmsReceivedListener(this);
}
Я использовал интерфейс, но всегда я получаю как null
.so, что я могу сделать, чтобы получить OTP.
P.S- Я не хочу запускать новую активность с помощью намерения, потому что активность работает только, поэтому если через Intent я могу передать otp без запуска новой активности, а также для поддержки заднего стека?
вы используете context.registerReceiver? – krystian71115
Где вы создаете экземпляр объекта 'smsReceived'? –
в моей активности, но все же я получаю его как null –