2016-03-18 32 views
0

Anlamadım, bir sms aldığımda hiçbir şey görünmez.SMS almayın (java android)

public class MyReceiver extends BroadcastReceiver { 
    public MyReceiver() { 
    } 

    private static final String RECEIVE_MSG = "android.provider.Telephony.SMS_RECEIVED"; 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     if(intent.getAction().equals(RECEIVE_MSG)){ 
      Bundle extra = intent.getExtras(); 
      if(extra!= null){ 
       Object[] pdus = (Object[])extra.get("pdus"); 
       final SmsMessage[] messages = new SmsMessage[pdus.length]; 
       for(int i = 0; i<pdus.length; i++){ 
        messages[i]= SmsMessage.createFromPdu((byte[])pdus[i]); 
       } 
       if (messages.length>-1) { 
        for (int i = 0; i<messages.length; i++) { 
         final String messageBody = messages[i].getMessageBody(); 
         final String phoneNumber = messages[i].getDisplayOriginatingAddress(); 
         Toast.makeText(context,"Expéditeur:" + phoneNumber, Toast.LENGTH_LONG).show(); 
         Toast.makeText(context,"Message : " + messageBody, Toast.LENGTH_LONG).show(); 
        } 
       } 
      } 
     } 

    } 
} 
+0

Bu sorunu teşhis etmek neredeyse yeterli bilgi yoktur. –

+0

Referans sms iznine sahip misiniz? KitKat üzerindeyseniz veya daha yukardaysanız http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html adresini okuyun. –

+0

Evet, ben android 6, izinler ekliyorum ama alınan sms için çalışma zamanı izinleri ekleyemem doğru, ama nerede mettres gerekir? Teşekkürler – Antholife

cevap

0

Bildiride reicever veya Activity var mı?

<receiver android:name=".broadcast.SmsBroadcastReceiver" > 
     <intent-filter android:priority="5000"> 
      <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 
     </intent-filter> 

</receiver> 

veya

IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED"); 
filter.setPriority(9999); 
registerReceiver(new SmsBroadcastReceiver(),filter);