This is simple library for receiving sms in android with new SMS Retriever API.
Minimum sdk is 21.
tns plugin add nativescript-sms-receiver
Add below code to {your-app-module}/App_Resources/Android/src/main/AndroidManifest.xml
<receiver android:name="com.pravinkumarputta.android.smsreceiver.SMSBroadcastReceiver" android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.auth.api.phone.SMS_RETRIEVED"/>
</intent-filter>
</receiver>
import { SmsReceiver } from 'nativescript-sms-receiver';
Call this method once before starting SMS listener
SmsReceiver.getInstance();
Note: Call above method only after page loaded.
// register Sms Listener to get SMS callbacks
SmsReceiver.getInstance().registerListeners(
function () {
// onSMSReceiverStarted
...
}.bind(this),
function (exception) {
// onSMSReceiverFailed
...
}.bind(this),
function (message) {
// onSMSReceived
...
// handle sms here
...
// deregister Sms Listener to avoid invalid operations
SmsReceiver.getInstance().deregisterListeners();
}.bind(this),
function () {
// onSMSReceiverTimeOut
...
}.bind(this)
);
// start sms receiver for single message
SmsReceiver.getInstance().startReceiver();
The verification message that you will send to the user's device. This message must:
- Be no longer than 140 bytes
- Begin with the prefix <#>
- Contain a one-time code that the client sends back to your server to complete the verification flow (see Generating a one-time code)
- End with an 11-character hash string that identifies your app (see Computing your app's hash string)
Otherwise, the contents of the verification message can be whatever you choose. It is helpful to create a message from which you can easily extract the one-time code later on. For example, a valid verification message might look like the following:
<#> Your ExampleApp code is: 123ABC78
FA+9qCX9VSu
(For more information visit here)
After instantiating SMSReceiver access hash string using:
SmsReceiver.getInstance().getHashString() // After instantiating SmsReceiver othersise it returns empty string
SmsReceiver.getInstance().requestForPhoneNumber((phoneNumber) => {
// phoneNumber is null if no number is selected.
...
})
Apache License Version 2.0, January 2004