SMS Okuma
Bir BroadcastReceiver tanımlanır. Kodu şuna
benzer.
public class SmsBroadcastReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Object[] sms = (Object[]) bundle.get("pdus");
for (Object sm : sms) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) sm);
String smsBody = smsMessage.getMessageBody();
String senderNumber = smsMessage.getOriginatingAddress(); ...
}
}
Eğer aynı sınıf hem okuma hem de gönderme için kulllanılıyorsa ikisi şöyle ayırt
edilir.
public class SmsBroadcastReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String MSG_TYPE = intent.getAction();
if (MSG_TYPE.equals("android.provider.Telephony.SMS_RECEIVED")) {
...
} else if (MSG_TYPE.equals("android.provider.Telephony.SEND_SMS")) {
...
}
}
}
createFromPdu metodu
Şöyle yaparız.
byte [] pdu = ...;
SmsMessage sms = SmsMessage.createFromPdu (pdu);
getDisplayMessageBody metodu
String message = sms.getDisplayMessageBody();
getMessageBody metodu
String message = sms.getMessageBody();
getOriginatingAddress metodu
String senderNumber = sms.getOriginatingAddress();
getProtocolIdentifier metodu
Şöyle yaparız.
sms.getProtocolIdentifier();
getStatusOnIcc metodu
Şöyle
yaparız.
sms.getStatusOnIcc();
getStatusOnSim metodu
Şöyle
yaparız.
Manifest
BroadcastReceiver şöyle şöyle
etkinleştirilir.
<receiver android:name="com.example.abc.SmsBroadcastReciever"> <intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
Şu izinlere gerek
vardır.
<uses-permission android:name="android.permission.RECEIVE_SMS"
android:required="true"/>
<uses-permission android:name="android.permission.READ_SMS"
android:required="true"/>