0

A という名前の電話と通信することを目的としたアプリケーションを開発しました。たとえば、アプリケーションが A からメッセージを受信すると、彼はトーストを表示しますが、メッセージの送信者ではない場合、受信したメッセージを無視します。しかし、メッセージを受け取っても、アプリケーションは何も表示しません。それがAであろうと他の誰かであろうと。番号をメモリ A に記録し、アプリケーションで取得します。

(2 つのエミュレーターで動作しますが、私のアプリケーションでは動作しません) ..

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