Soru & Cevap

Android'de SMS Okuma

21.11.2013 - 03:47

selamlar,

Android'de bir proje gelitiriyoruz. M2M gibi bir uygulamamız var. Modüle SMS göndereceğiz ve SMS alacağız. SMS gönderme kısmını örneklele anladım ancak, mesaj okuma kısmında sorularım var. Belli bir numaradan SMS alınınca uygulamaya çekebiliyor muyuz? Örneğin sadece 0500 500 50 50 numarasından bize gelen SMS olursa, uygulamada bir işlem yapalım diyebilyor muyuz?

 

Teşekkürler

211 Görüntülenme

3 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user kamilyildirim70.ky
kamilyildirim70.ky
16.03.2017 - 10:18

Platformda yeniyim ve paylaşımınız için teşekkürler fakat bir soru sormak istiyorum.

Programa bu numaradan gelen mesaj "1" ise bi işlem yaptırmak istiyorum "0" ise farklı bi işlem bunu nasıl değerlendirebiliriz?

picture-8337-1385290534.jpg
erhan.yilmaz
27.11.2013 - 02:58

Nexus 4 kullanıyorum. 4.4 güncellemesini yaptım. Bu kodlar hala çalışıyor bu anlamda sorun yaratmadı

Profile picture for user yasinkafadar
yasinkafadar
21.11.2013 - 05:33

Selam Erhan,

Senin yapmak istediğin sanırım SmsReceiver'ın (yani broadcastreceiver'ın) sadece belli bir numaradan gelince smsleri alabilmesi. Yani manifest'e yaptığın aşağıdaki gibi bir tanımının içine bir numara eklemek. Eğer böyle bir şey yapmak istiyorsan ben internette direk böyle bir örnek bulamadım. 

<receiver android:name=".SmsReceiver">
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
            </intent-filter>
        </receiver>

 

Genel olarak, bizde öyle yapıyoruz gelen sms'in hangi numaradan geldiğini check edip ona göre aksiyon alıyoruz.

 

Manifest:

<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>

Receiver:

public class smsReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        
        Log.i("cs.fsu", "smsReceiver: SMS Received");
        
        Bundle bundle = intent.getExtras();
            if (bundle != null) {
                Log.i("cs.fsu", "smsReceiver : Reading Bundle");
                
                Object[] pdus = (Object[])bundle.get("pdus");
                SmsMessage sms = SmsMessage.createFromPdu((byte[])pdus[0]);
                if("0500 500 50 50".equals(sms.getOriginatingAddress())){
                   // kodu buraya gelecek
                }
            }
    }
}

 

Not: 4.4 (Kitkat) ile beraber bu sms işleri biraz değişti. Daha fazla bilgi için.

http://developer.android.com/reference/android/provider/Telephony.html