2011-02-05 22 views
0

SMSポップアップを行うアプリケーションが多数あります。どうして私のアプリを動かすことができないのですか? SMSメッセージが入ってきたら、画面にポップアップ表示したい。SMSポップアップ:SMSメッセージを受信したときにAlertDialogが表示されない

public class NotifySMSReceived extends Activity 
{ 

    private static final String LOG_TAG = "SMSReceiver"; 

    public static final int NOTIFICATION_ID_RECEIVED = 0x1221; 

    static final String ACTION = "android.provider.Telephony.SMS_RECEIVED"; 


    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 



     IntentFilter filter = new IntentFilter(ACTION); 

     this.registerReceiver(mReceivedSMSReceiver, filter); 

    } 


    private void displayAlert() 

    { 

     AlertDialog.Builder builder = new AlertDialog.Builder(this); 

     builder.setMessage("Are you sure you want to exit?").setCancelable(

       false).setPositiveButton("Yes", 
       new DialogInterface.OnClickListener() { 

        public void onClick(DialogInterface dialog, int id) { 
         dialog.cancel(); 
        } 
       }).setNegativeButton("No", 
       new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         dialog.cancel(); 
        } 
       }); 
     AlertDialog alert = builder.create(); 
     alert.show(); 
    } 

    private final BroadcastReceiver mReceivedSMSReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      String action = intent.getAction(); 

      if (ACTION.equals(action)) 
      { 
       //your SMS processing code 
       displayAlert(); 
      } 
     } 
    };  
} 
+0

新しいSMSメッセージを受信したときに表示するポップアップを取得するための可動部分があります。あなたはあなたのAndroid Manifestを投稿できますか?また、これはどのように動作するかの大きな部分です。 –

答えて

0

私はここでの問題は、コンテキストオブジェクトであると思う:

は、ここに私のコードです。

onReceiveあなたが渡す必要があります

(コンテキスト文脈、テントの意図)コンテキスト好きにonReciveで受信 ..

ます。private void displayAlert(コンテキスト文脈から、

、次いで、 変化、

AlertDialog.Builderビルダー=新しいAlertDialog.Builder(本)

TO AlertDialog.Builderビルダー=新しいAlertDialog.Builder(コンテキスト)。

これはうまくいくはずです。これは役に立ちます。

乾杯。

+0

私はAlertDialogを変更しましたが、まだToastはポップアップしていません –

+0

alertdialogで受信者のコンテキストを渡しましたか?もしそうなら、それはうまくいくはずです。エラーログがあればそれをポストします。 –

+1

トーストはシステムオーバーレイとして表示されるため表示されます。 AlertDialogは、SMSが到着したときにアプリケーションがフォアグラウンドになった場合にのみ表示されます。私はチェックして、AlertDialogを見ていますが、アプリケーションに移動するときだけです。画面上に何かをオーバーレイとして表示させたい場合は、ユーザーフレンドリーではありませんが、実行可能です。 – Zelimir

関連する問題