6

着信があるたびにトーストを表示するプログラムを作成しました。私が試したすべての電話で正常に動作しています - 着信画面にトーストが表示されます。

昨日、HTC Desire S を Sense 3.0 (Android 2.3.5) にアップデートしたところ、着信を表示する新しいロック画面が表示されたようです。ロック画面を開くと、「元の」着信画面が表示され、電話に出ることができます。また、通話に応答する前に、元の通話画面にトーストが一瞬表示されます。

表示するトーストはカスタム レイアウトを使用し、サービスから表示されます。このサービスは、着信時にブロードキャスト レシーバーからインテントを受け取ります。

次のコードを使用してトーストを表示します。

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.popup_toast,  null);

toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.TOP | Gravity.FILL_HORIZONTAL, 0, 0);
toast.setDuration(Toast.LENGTH_SHORT);
toast.setView(layout);
toast.show();

新しい Sense 3.0 ロック画面にトーストが表示されるように設定する方法はありますか?

4

2 に答える 2

2

問題はもう少し広いと思います。私の場合、HTC センス 3.0 のロック画面では、アクティビティ ダイアログを表示できません (トースト メッセージと同様)。画面のロックが解除されると、ダイアログ (バックグラウンド サービスから起動されたアクティビティ) が正常に表示されます。HTC センス画面ロックでメッセージを表示する唯一の方法は、通知を使用することです。多くの人は、これが推奨されるアプローチであることに同意します (ポップアップでユーザーを煩わせないなど)。欠点は通知の性質にあります - 1、2 秒後に消えます。したがって、「発信者 ID」の種類のアプリケーションでは、誰が電話しているかを確認したい場合、ユーザーはポケットから HTC をすばやく取り出す必要がありますが、それは確かに適切ではありません。

OpenSense SDK には、画面ロック時にメッセージを長時間表示できるようにする API が含まれている可能性があります。最初に見たとき、「感覚スタイル」のタブしか見つかりませんでした...

誰かが「プログラムで」電話のロックを解除してから、トーストまたはダイアログを表示することを提案しました。これは「幸せな」解決策ではなく、可能かどうかさえわかりません。

私の投稿が完全な回答ではないことは承知していますが、HTC センス 3.0 のロック画面にメッセージが表示される問題について詳しく説明してくれることを願っています。

于 2012-01-28T08:46:54.940 に答える
0

以下のコードを使用

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.listitems,  null);
        Toast toastView = new Toast(getApplicationContext());
        toastView.setView(layout);
        toastView.setDuration(Toast.LENGTH_LONG);
        toastView.setGravity(Gravity.CENTER, 0,0);
        toastView.show();

        it's working fine for me 
于 2011-12-12T07:19:45.477 に答える