SMSMessage etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
SMSMessage etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

12 Eylül 2016 Pazartesi

SMSMessage Sınıfı

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
Şöyle yaparız.
String message = sms.getDisplayMessageBody();
getMessageBody metodu
Şöyle yaparız.
String message = sms.getMessageBody();
getOriginatingAddress metodu
Şöyle yaparız.
String senderNumber = sms.getOriginatingAddress();
getProtocolIdentifier metodu
Şöyle yaparız.
sms.getProtocolIdentifier();
getStatusOnIcc metodu
Şöyle yaparız.
sms.getStatusOnIcc();
getStatusOnSim metodu
Şöyle yaparız.
sms.getStatusOnSim();
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"/>