6

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

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

我显示的 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();

有什么方法可以设置让 toast 显示在新的 Sense 3.0 锁定屏幕上?

4

2 回答 2

2

我认为这个问题有点广泛。就我而言,HTC sense 3.0 锁屏不允许显示活动对话框(与 Toast 消息相同)。当屏幕解锁时,对话框(从后台服务触发的活动)显示得很好。在 HTC 感应屏幕锁定上显示消息的唯一方法是使用通知 - 许多人会同意这是一种推荐的方法(例如不要用弹出窗口打扰用户)。缺点是通知性质 - 它会在一两秒后消失。因此,对于“来电显示”类型的应用程序,如果用户想查看谁在打电话,那么用户应该迅速从口袋里拿出 HTC,这肯定是不合适的。

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

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

我知道我的帖子不是一个完整的答案,但我希望它能提供更多关于在 HTC sense 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 回答