2016-03-18 22 views
0

私はSMSが届かない場合は何も表示されません。SMSが受信できない(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

これはあなたの問題を診断するためにほぼ十分な情報ではありません。 –

+0

あなたは受取人の許可を持っていますか? KitKat以上の方はhttp://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.htmlを読んでください。 –

+0

はい私はアンドロイド6ですが、私はアクセス許可を追加しますが、受信したSMSの実行時アクセス許可を追加することはできませんが、どこでmettresを実行する必要がありますか?ありがとう – Antholife

答えて

0

マニフェストまたはアクティビティにreiceverを登録していますか?

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

</receiver> 

または

IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED"); 
filter.setPriority(9999); 
registerReceiver(new SmsBroadcastReceiver(),filter); 
関連する問題