我有一些意图。当意图触发时,我想发送一个类似AlertBox的弹出通知并打开屏幕让用户立即看到通知(我的意思是没有显示锁屏)。
如果你曾经使用过HandcentSMS,那么你就明白了我的意思(比如接受消息时的弹出通知)
如何组织这个?任何代码示例?我必须使用哪种权限?
提前谢谢。
答案 0 :(得分:7)
查看PowerManager。
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
//Do whatever you need right here
wl.release();
答案 1 :(得分:4)
您的活动在onCreate()实现中应具有以下代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
setContentView( R.layout.myLayout);
// rest of initialization
}
您使用intent调用活动。这是一个例子:
Intent startIntent = new Intent(context, MyActivity.class);
startIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(startIntent);
答案 2 :(得分:0)
也许KeyguardLock可以执行您想要的操作:弹出通知,然后拨打disableKeyguard
,然后在用户完成时或超时后重新启用。
安全方面它有点危险,但你去了。