Java 在我的应用程序中的特定时间在手机屏幕上显示透明图像

Java 在我的应用程序中的特定时间在手机屏幕上显示透明图像,java,android,service,operating-system,Java,Android,Service,Operating System,我有两个问题: 用户将设置从我的应用程序开始的时间(例如:15分钟),当时间结束时,带有2个按钮的图像将出现,覆盖整个屏幕5秒钟。然后用户可以从这里选择ok或ignore按钮。无论用户当前正在运行什么,此屏幕都将出现并显示在顶部 当上述屏幕显示时,我可以通过代码禁用电源按钮吗 关于你的第一个问题:是的,这是可能的。您需要android.permission.SYSTEM\u ALERT\u窗口的permission才能进行此操作。基本上,您需要做的是获取WindowManager的一个实例并向其

我有两个问题:

  • 用户将设置从我的应用程序开始的时间(例如:15分钟),当时间结束时,带有2个按钮的图像将出现,覆盖整个屏幕5秒钟。然后用户可以从这里选择ok或ignore按钮。无论用户当前正在运行什么,此屏幕都将出现并显示在顶部

  • 当上述屏幕显示时,我可以通过代码禁用电源按钮吗


  • 关于你的第一个问题:是的,这是可能的。您需要android.permission.SYSTEM\u ALERT\u窗口的
    permission才能进行此操作。基本上,您需要做的是获取WindowManager的一个实例并向其中添加一个视图:

    windowManager = null;
    try {
        windowManager = (WindowManager) Class
                .forName("android.view.WindowManagerImpl")
                .getMethod("getDefault", new Class[0])
                .invoke(null, new Object[0]);
    } catch (Exception ex) {
        Log.e("bla", "Error getting WindowManager", ex);
    }
    
    windowManager.addView(yourView, layoutParams);
    
    有关更多信息,请查看源代码


    完全禁用电源按钮是不可能的。您可以请求完全唤醒锁定,这样设备就不会睡着。

    关于您的第一个问题:是的,这是可能的。您需要android.permission.SYSTEM\u ALERT\u窗口的
    permission才能进行此操作。基本上,您需要做的是获取WindowManager的一个实例并向其中添加一个视图:

    windowManager = null;
    try {
        windowManager = (WindowManager) Class
                .forName("android.view.WindowManagerImpl")
                .getMethod("getDefault", new Class[0])
                .invoke(null, new Object[0]);
    } catch (Exception ex) {
        Log.e("bla", "Error getting WindowManager", ex);
    }
    
    windowManager.addView(yourView, layoutParams);
    
    有关更多信息,请查看源代码


    完全禁用电源按钮是不可能的。您可以请求一个完整的唤醒锁,这样设备就不会睡着。

    您想要做的不是真正友好的用户体验。是的,我知道。但这可能吗?你想做的不是真正友好的用户体验。是的,我知道。但这可能吗?