0

我开发了一个应用程序,旨在与名为 A 的电话进行通信。例如,当我的应用程序接收到来自 A 的消息时,他会显示一个 Toast,但当不是谁发送消息时,它会忽略收到的消息。但是当我收到消息时,应用程序什么也不显示。不管是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();
            }
        }             
    }
4

0 回答 0