相关疑难解决方法(0)

Android:如何以编程方式打开和关闭屏幕?

在将此帖标记为"重复"之前,我正在撰写此帖子,因为没有其他帖子能够解决问题.

我试图关闭设备,然后在几分钟或传感器更换后,将其重新打开.

关闭显示测试

我可以使用以下方式关闭屏幕:

params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);
Run Code Online (Sandbox Code Playgroud)

我无法使用wl.release()方法关闭屏幕.

打开显示测试

我的第一个猜测,如下,不起作用.什么都没发生,屏幕仍然关闭.

params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = -1f;
getWindow().setAttributes(params);
Run Code Online (Sandbox Code Playgroud)

然后我也尝试使用唤醒锁,但没有成功.

PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "tag");
wl.acquire();
Run Code Online (Sandbox Code Playgroud)

最后我尝试了以下内容,没有结果.

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)

总而言之,我不会在控制台中遇到任何这些方法的任何错误.当我使用电源按钮打开设备时,我的测试文本"屏幕应该打开",在屏幕上.这表明代码应该已经运行.如果你已经测试了代码,请回答,似乎很多功能,例如params.screenBrightness = -1,根据sdk不能正常工作.

android

93
推荐指数
8
解决办法
17万
查看次数

Android 全屏通知不会显示在锁定屏幕上

我正在尝试创建一个 android 全屏通知,以在锁定屏幕上显示活动,例如闹钟。

通知总是发生,但活动永远不会在锁屏上启动;如果手机关机,它只会响铃并在锁定屏幕上显示一个通知图标。如果手机按预期打开,它会显示提醒通知。调试打印表明通知通道已按要求在重要性级别 HIGH/4 上成功注册。

我已经在 5 个不同的 Android 设备版本上尝试过:Android 10、8.0.0、6.0.1、5.1.1

我遵循了下面链接的 android 开发人员文档。我还链接了几个类似的堆栈溢出问题。

https://developer.android.com/training/notify-user/time-sensitive

https://developer.android.com/training/notify-user/build-notification#urgent-message

全屏意图不启动活动,但在 android 10 上显示通知

全屏通知

下面是应用程序代码的一个非常小的版本,一个带有 1 个按钮的活动,用于在将来使用广播接收器安排通知,以便在屏幕锁定后触发。

    compileSdkVersion 29
    buildToolsVersion "29.0.2"

    minSdkVersion 25
    targetSdkVersion 29

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

public class AppReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (FullscreenActivity.FULL_SCREEN_ACTION.equals(intent.getAction()))
            FullscreenActivity.CreateFullScreenNotification(context);
    }
}

public class FullscreenActivity extends AppCompatActivity {

    private static final String CHANNEL_ID = "my_channel";
    static final String FULL_SCREEN_ACTION = "FullScreenAction";

    @Override
    protected void …
Run Code Online (Sandbox Code Playgroud)

android lockscreen android-alarms android-notifications

7
推荐指数
1
解决办法
7477
查看次数