Android 需要在锁定屏幕中显示我的应用程序内容
我需要创建一个android应用程序,就像这个解锁程序一样,在锁屏上显示我的应用程序内容Android 需要在锁定屏幕中显示我的应用程序内容,android,android-layout,Android,Android Layout,我需要创建一个android应用程序,就像这个解锁程序一样,在锁屏上显示我的应用程序内容 以下警报对话框是从广播接收器启动的,在屏幕得到帮助时显示。请根据需要进行修改 //required permissions in manifest <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission
以下警报对话框是从广播接收器启动的,在屏幕得到帮助时显示。请根据需要进行修改
//required permissions in manifest
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
//code in my broadcast
@Override
public void onReceive(final Context context, final Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
Window window = (Window) context.getSystemService(Context.WINDOW_SERVICE);
window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
wl.acquire();
}
AlertDialog alertDialog = new AlertDialog.Builder(context)
.setTitle("On lock dialog message")
.setMessage(""Notice")
.create();
alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();
}
//清单中所需的权限
//我广播中的代码
@凌驾
公共void onReceive(最终上下文、最终意图){
if(intent.getAction().equals(intent.ACTION屏幕关闭)){
windowwindow=(Window)context.getSystemService(context.Window\u服务);
addFlags(WindowManager.LayoutParams.FLAG\u discover\u KEYGUARD);
window.addFlags(WindowManager.LayoutParams.FLAG在锁定时显示);
添加标志(WindowManager.LayoutParams.FLAG\u打开屏幕);
PowerManager.WakeLock wl=pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP,“tag”);
wl.acquire();
}
AlertDialog AlertDialog=新建AlertDialog.Builder(上下文)
.setTitle(“锁定对话框消息”)
.setMessage(“通知”)
.create();
alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_discover_KEYGUARD|WindowManager.LayoutParams.FLAG_打开_屏幕
|WindowManager.LayoutParams.FLAG_锁定时显示
|WindowManager.LayoutParams.FLAG\u保持屏幕\u打开
|WindowManager.LayoutParams.FLAG_discover_KEYGUARD);
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE\系统\警报);
alertDialog.show();
}
希望这有帮助您应该使用此标志:当锁定时显示标志 例如:
这仅在解锁屏幕后才起作用。@peterdid您添加权限了吗?您何时尝试通过服务或?通过broadcastreceiver中触发的alarmmanager事件通过服务显示内容。它已经存在
getWindow().addFlags(WindowManager.LayoutParams.FLAG\u锁定时显示);
但它仅在解锁屏幕后才工作。请确保也使用此标志:标志\u discouse\u keyguard,不要忘记在mainfest中添加权限:``并将此行添加到将显示在清单中的活动:android:shownlockscreen=“true”
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);