Skip to content

msmakhlouf/react-native-android-sms

Repository files navigation

Sms for react-native android

A react native android module to list/send sms.

npm

GitHub tag

Setup

There are five steps in the setup process.

  1. Install the module via npm.
  2. Update android/settings.gradle file.
  3. Update android/app/build.gradle file.
  4. Register the module in MainActivity.java file.
  5. Rebuild and restart package manager
  • Install the module via npm
 npm i --save react-native-android-sms
  • Update android/settings.gradle file
... include ':react-native-android-sms' project(':react-native-android-sms').projectDir = new File(settingsDir, '../node_modules/react-native-android-sms')
  • Update android/app/build.gradle file
... dependencies { ... compile project(':react-native-android-sms') }
  • Register the module (in MainActivity.java file)
import my.qash.react.SmsPackage; // <--First, we import import public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler { ...... private static Activity mActivity = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mReactRootView = new ReactRootView(this); mActivity = this; mReactInstanceManager = ReactInstanceManager.builder() .setApplication(getApplication()) .setBundleAssetName("index.android.bundle") .setJSMainModuleName("index.android") .addPackage(new MainReactPackage()) .addPackage(new SmsPackage(this)) // <------- Then, we add the package .setUseDeveloperSupport(BuildConfig.DEBUG) .setInitialLifecycleState(LifecycleState.RESUMED) .build(); mReactRootView.startReactApplication(mReactInstanceManager, "MyExampleApp", null); setContentView(mReactRootView); } ...... }
  • Run react-native run-android from your project root directory

Usage

  • List all SMS messages matching filters.
var SmsAndroid = require('react-native-android-sms'); /* List SMS messages matching the filter */ var filter = { box: 'inbox', // 'inbox' (default), 'sent', 'draft', 'outbox', 'failed', 'queued', and '' for all // the next 4 filters should NOT be used together, they are OR-ed so pick one read: 0, // 0 for unread SMS, 1 for SMS already read _id: 1234, // specify the msg id address: '+97433------', // sender's phone number body: 'Hello', // content to match // the next 2 filters can be used for pagination indexFrom: 0, // start from index 0 maxCount: 10, // count of SMS to return each time }; SmsAndroid.list(JSON.stringify(filter), (fail) => { console.log("OH Snap: " + fail) }, (count, smsList) => { console.log('Count: ', count); console.log('List: ', smsList); var arr = JSON.parse(smsList); for (var i = 0; i < arr.length; i++) { var obj = arr[i]; console.log("Index: " + i); console.log("-->" + obj.date); console.log("-->" + obj.body); } }); /*  Each sms will be represents by a JSON object represented below  {  "_id": 1234,  "thread_id": 3,  "address": "2900",  "person": -1,  "date": 1365053816196,  "date_sent": 0,  "protocol": 0,  "read": 1,  "status": -1,  "type": 1,  "body": "Hello There, I am an SMS",  "service_center": "+60162999922",  "locked": 0,  "error_code": -1,  "sub_id": -1,  "seen": 1,  "deletable": 0,  "sim_slot": 0,  "hidden": 0,  "app_id": 0,  "msg_id": 0,  "reserved": 0,  "pri": 0,  "teleservice_id": 0,  "svc_cmd": 0,  "roam_pending": 0,  "spam_report": 0,  "secret_mode": 0,  "safe_message": 0,  "favorite": 0 }  */ 
  • Send an SMS
var SmsAndroid = require('react-native-android-sms'); var text = "Hello ... QASH I AM YOUR FATHER !!!!!"; var addressList = { addressList: [ "+97433------", "+97434------" ] } SmsAndroid.send(JSON.stringify(addressList), text, (fail) => { console.log("OH Snap: " + fail) }, (status) => { console.log('Status: ', status); });
  • Delete an SMS (coming soon)

About

A react native android module to list/send sms.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •