Read incoming and outgoing text messages using an Android application across different Android SDK versions it's not trivial. If yo don't want to appear as SMS application and your application has to read incoming and outgoing SMSs this is your library.
This Android library offers you two main classes to use to start listening text messages. SMS Radar is implemented in
top of an Android service. To start / stop listening text messages use SmsRadar.initializeSmsRadarService(context, listener)
with a Context
instance and a SmsListener
implementation.
Each time the device owner receives one SMS the SmsListener
used to initialize SmsRadarService
service will be
notified in on onSmsSent(Sms sms)
or onSmsReceived(Sms sms)
methods.
The SMS information provided on SmsListener
methods is:
- SMS address. MSISDN used to send/receive the SMS.
- SMS date. SMS local creation date.
- SMS content. Message sent in the SMS.
- SMS type. One SMS can be received or sent. Review
SmsType
enum if need it.
This library works on Android 2.X or higher versions.
Download the project, compile it using mvn clean install
import smsradar-1.0.4.jar
into your project.
Or declare it into your pom.xml
<dependency>
<groupId>com.tuenti.smsradar</groupId>
<artifactId>library</artifactId>
<version>1.0.4</version>
</dependency>
Or into your build.gradle
dependencies{
compile 'com.tuenti.smsradar:library:1.0.4'
}
Declare permissions to read SMS content provider in your AndroidManifest:
<uses-permission android:name="android.permission.READ_SMS"/>
Declare SmsRadar service in your AndroidManifest:
<service
android:name=".SmsRadarService"
android:exported="false"
android:label="@string/app_name"/>
To use SMS Radar library you only have to initialize SmsRadar
using a Context instance and one SmsListener
:
SmsRadar.initializeSmsRadarService(context, new SmsListener() {
@Override
public void onSmsSent(Sms sms) {
showSmsToast(sms);
}
@Override
public void onSmsReceived(Sms sms) {
showSmsToast(sms);
}
});
You can stop the SMS observer like in this sample:
SmsRadar.stopSmsRadarService(context);
SmsRadar was created by Android team at Tuenti Technologies S.L.. You can follow Tuenti engineering team on Twitter @tuentieng.
SmsRadar is available under the Apache License, Version 2.0. See LICENSE.txt file for more info.