0

不在着信があった場合 のalertdialog不在着信があった場合に電話をバイブレーションし、バイブレーションを停止するためのダイアログアラートを表示したい

ダイアログを使用するには、このコードを使用しています

 AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
                            alertDialog.setTitle("Call");
                            alertDialog.setMessage("show this?");

                            // "Yes" Button
                            alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog,int which)
                               {

                                Toast.makeText(getApplicationContext(), "You clicked                        YES", Toast.LENGTH_SHORT).show();
                                }
                            });

                            //  "NO" Button
                            alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int which) {
                                // Write your code here to invoke NO event
                                Toast.makeText(getApplicationContext(), "You clicked NO", Toast.LENGTH_SHORT).show();
                                dialog.cancel();
                                }
                            });


                            alertDialog.show();
4

2 に答える 2

1

不在着信のイベント/ブロードキャスト/通知を取得することはできませんが、ACTION_PHONE_STATE_CHANGED のイベントは、EXTRA_STATE_RINGINGからEXTRA_STATE_OFFHOOKからEXTRA_STATE_IDLEの順序でイベントの追跡から 取得できます

この後、通話ログを確認して、不在着信の詳細を見つけることができます。

参考までに、通話ログを取得するためのコード サンプルを次に示します

礼儀: AndDev.org

于 2012-06-29T19:52:26.113 に答える
0

ただし、実装しようとしているデザイン パターンは推奨されません。

Android 自体が不在着信をユーザーに通知します。ユーザーの振動設定に基づいて、電話が振動します。

必要に応じて、ACTION_PHONE_STATE_CHANGED を受信するたびに通話ログを自分で確認し、それに基づいて通知を送信する必要があります。ダイアログを表示することは、タスクの通常の流れを中断する煩わしいアプローチです。通知がクリックされたときにユーザーをアプリに戻す通知のコンテンツ インテントを実装できます。アプリケーションに入ると、ユーザーはバイブレーションをオフにすることを選択できます。

通常、不在着信は、ユーザーが行っている他の作業を妨げるものではありません。

于 2012-06-29T21:34:04.343 に答える