【问题标题】:Displaying activity(theme dialog) show above the Dialer in lockscreen?在锁定屏幕的拨号器上方显示活动(主题对话框)?
【发布时间】:2016-05-05 07:19:42
【问题描述】:

需要在拨号器上显示活动(主题对话框),并在活动中填充一些信息,例如真正的呼叫者。在解锁的手机中,它运行良好。

但在锁定的手机中,它没有按预期工作。做了一些谷歌搜索,发现需要添加一些标志才能使对话框出现在锁定屏幕中。

CallActivity.java

LayoutParams layoutParams = new LayoutParams(
    LayoutParams.MATCH_PARENT,
    LayoutParams.WRAP_CONTENT, LayoutParams.TYPE_SYSTEM_DIALOG | LayoutParams.TYPE_SYSTEM_ALERT |
    LayoutParams.TYPE_SYSTEM_OVERLAY,
    LayoutParams.FLAG_NOT_TOUCH_MODAL |
            LayoutParams.FLAG_NOT_FOCUSABLE |
            LayoutParams.FLAG_TURN_SCREEN_ON |
            LayoutParams.FLAG_SHOW_WHEN_LOCKED |
            LayoutParams.FLAG_KEEP_SCREEN_ON |
            LayoutParams.FLAG_DISMISS_KEYGUARD,
    PixelFormat.TRANSLUCENT);
getWindow().setAttributes(layoutParams);

在上面的代码中,我添加了与使活动显示为对话框相关的更改和一些与使对话框在锁定屏幕中正常工作相关的标志(FLAG_TURN_SCREEN_ON、FLAG_SHOW_WHEN_LOCKED、FLAG_KEEP_SCREEN_ON、FLAG_DISMISS_KEYGUARD)。

我还使用(来自广播接收器)开始活动

            Intent intent = new Intent(context, MyActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            intent.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
            context.startActivity(intent);

【问题讨论】:

  • 你有答案了吗?

标签: android android-activity


【解决方案1】:

在具有系统警报权限的窗口管理器上添加视图

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);

mParams = new WindowManager.LayoutParams();
mParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; 
mParams.format = PixelFormat.TRANSLUCENT;
mParams.flags = 262184;

mWindowManager.addView(view, mParams);

注意:如果应用面向 API 级别 23 或更高级别,则应用用户必须通过权限管理屏幕明确授予应用此权限。应用程序通过发送带有操作 ACTION_MANAGE_OVERLAY_PERMISSION 的意图来请求用户的批准。应用可以通过调用 Settings.canDrawOverlays() 来检查是否有这个权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多