Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 需要在锁定屏幕中显示我的应用程序内容_Android_Android Layout - Fatal编程技术网

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

我需要创建一个android应用程序,就像这个解锁程序一样,在锁屏上显示我的应用程序内容


以下警报对话框是从广播接收器启动的,在屏幕得到帮助时显示。请根据需要进行修改

//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);