我有一个收听来电的广播接收器。我想调整来电屏幕。现在我可以向通知栏展示祝酒词并向通知栏添加通知(顺便说一句,在接听电话之前,由于屏幕被锁定,用户无法将其拉下,这有点糟糕)。我试图显示警报但它崩溃了 - 不允许吗?广播接收器中的代码有没有办法做其他事情,比如更改呼叫者的头像或给它一个名字(即使它不存在于联系人中)。假设我的广播接收器拦截了一个电话 - 它可以将电话号码和自定义头像添加到联系人,以便他们立即出现在通话屏幕中吗?
你怎么看?
编辑
我已经测试了供应商的代码,它可以工作,但是从后台线程更改 UI 是不安全的,所以我尝试稍微调整他的代码以使其线程安全,但是由于某种原因没有出现 toast。你怎么看?
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);
}
}
});
}