Simple, easy implementation of sms code auto input for Android
You can see the result below:
Just add link to repository and dependency:
implementation 'com.github.vitalibov:smsinterceptor:1.0'
<dependency>
<groupId>com.github.vitalibov</groupId>
<artifactId>smsinterceptor</artifactId>
<version>1.0</version>
<type>pom</type>
</dependency>
Add permissions to AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
Add listener to Activity/Fragment:
public class AuthActivity extends AppCompatActivity implements OnMessageListener
and override:
@Override
public void messageReceived(String message) {
// You can perform your validation here
etAuthPassword.setText(message);
}
Create interceptor class:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_auth);
SmsInterceptor smsInterceptor = new SmsInterceptor(this, this);
// Not necessary
smsInterceptor.setRegex(SMS_CODE_REGEX);
smsInterceptor.setPhoneNumber(PHONE_NUMBER);
}
Register and be sure to unregister:
@Override
protected void onResume() {
super.onResume();
smsInterceptor.register();
}
@Override
protected void onPause() {
super.onPause();
smsInterceptor.unregister();
}
Don’t forget to add permissions:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
smsInterceptor.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
That's all! Enjoy using!
Vitali Bovkunovich - vitalibof@gmail.com
- MIT license
- Copyright 2018 © Vitali Bovkunovich.