着信をリッスンするブロードキャスト レシーバーがあります。そして、着信画面を微調整したい。今、私はトーストを提示し、通知バーに通知を追加することができます(ところで、電話を受け入れる前に画面がロックされているため、ユーザーはそれをプルダウンできません)。アラートを表示しようとしましたが、クラッシュしました - 許可されていませんか? 発信者のアバターを変更したり、名前を付けたりするなど、放送受信機のコードで他のことを行う方法はありますか (連絡先に存在しない場合でも)。ブロードキャスト レシーバーが通話を傍受したとしましょう。通話画面にすぐに表示されるように、電話番号とカスタム アバターを連絡先に追加できますか?
どう思いますか?
編集
ベンダーのコードをテストしたところ、うまくいきましたが、UI をバックグラウンド スレッドから変更するのは安全ではないため、彼のコードを少し調整してスレッド セーフにしようとしましたが、何らかの理由でトーストが表示されません。どう思いますか?
private Handler handler = new Handler();
private void showToast() {
Thread thread = new Thread(null, doBackgroundThreadProcessing, "Background");
thread.start();
}
private Runnable doBackgroundThreadProcessing = new Runnable() {
public void run() {
backgroundThreadProcessing();
}
};
private void backgroundThreadProcessing() {
handler.post(new Runnable() {
public void run() {
int count = 0;
try{
while (count < 10) {
toast.show();
Thread.sleep(1850);
count++;
}
}
catch(Exception e){
Log.e("LongToast", "", e);
}
}
});
}