显示来自特定手机的消息

时间:2013-06-08 11:21:49

标签: android

我开发了一个旨在与名为A的手机通信的应用程序。例如,当我的应用程序从A收到消息时,他会显示Toast,但是当它不是Who发送消息时,它会忽略收到的消息。但是当我收到消息时,应用程序什么也没显示。无论是A还是其他人。我在内存A中记录了数字,我在应用程序中得到它:

(它适用于两个模拟器,但它不适用于我的应用程序).​​.

public class SmsReceiver extends BroadcastReceiver
{
    String recipient_receive;

    @Override
    public void onReceive(Context context, Intent intent) 
    {
        //Récupère de la mémoire le n° du destinataire & le place dans une variable
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
        String recipient_number = preferences.getString("recipientNumberKey", null);

        //---get the SMS message passed in---
        Bundle bundle = intent.getExtras();        
        SmsMessage[] msgs = null;
        String str = "";            
        if (bundle != null)
        {
            //---retrieve the SMS message received---
            Object[] pdus = (Object[]) bundle.get("pdus");
            msgs = new SmsMessage[pdus.length];
            for (int i=0; i<msgs.length; i++){
                msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);                
                //str += "SMS from " + msgs[i].getOriginatingAddress();    //permet de rajouter le destinataire du SMS reçu                 
                //str += " :";
                str += msgs[i].getMessageBody().toString();
                str += "\n";     

                recipient_receive = msgs[i].getOriginatingAddress();
            }
            if(recipient_receive.equals(recipient_number))
            {
                //---display the new SMS message---
                Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
            }
        }             
    }

0 个答案:

没有答案