吐司没有在HTC Sense 3.0锁屏上显示

时间:2011-11-30 10:16:11

标签: android sense

我创建了一个程序,每次收到来电时都会显示一个祝酒词。它在我试过的所有手机上运行正常 - 在来电屏幕上显示吐司。

昨天我将我的HTC Desire S更新为Sense 3.0(Android 2.3.5),显然它有一个新的锁定屏幕,显示来电。打开锁定屏幕将带我进入“原始”来电屏幕并接听电话。在电话接听之前,我还可以在原始通话屏幕上看到我的祝酒词。

我显示的toast使用自定义布局,并从服务中显示。该服务在来电时从广播接收器接收意图。

我使用以下代码来展示我的祝酒词:

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锁定屏幕上显示toast?

2 个答案:

答案 0 :(得分:2)

我认为这个问题有点宽泛。在我的情况下,HTC sense 3.0锁屏不允许显示活动对话框(与Toast消息相同)。当屏幕被解锁时,对话框(从后台服务触发的活动)显示得很好。在HTC感知屏幕锁定上显示消息的唯一方法是使用通知 - 许多人会同意这是一种推荐的方法(比如不要打扰弹出窗口的用户)。缺点是通知性质 - 它将在第二或第二次消失后消失。因此,对于“来电显示”类型的应用程序,用户应该快速从口袋中拉出HTC,如果想要查看谁在呼叫并且这是不合适的。

也许OpenSense SDK包含API,可以在屏幕锁定上显示更长时间的消息。在我第一次看时,我只找到了“感觉风格”标签...

有人建议“以编程方式”解锁手机,然后显示Toast或Dialog。这不是一个“快乐”的解决方案 - 甚至不确定是否可行。

我知道我的帖子不是一个完整的答案,但我希望它能提供有关在HTC sense 3.0锁屏上显示消息的问题的更多细节。

答案 1 :(得分: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