Android 14 Java 唤醒屏幕已弃用

问题描述 投票:0回答:1

我有一个可以唤醒屏幕的应用程序,它在Android 6至11的早期版本上完美运行。升级到Android 14后,它不再起作用。我已修改我的代码以纳入建议的折旧修复。然而它就是行不通。它仍然可以在我的旧 Android 6 手机上运行,但不能在我新升级的 Android 14 手机上运行,Astudio 模拟也是如此。这个问题已在其他地方得到解决,但修复对我不起作用。下面的代码位于 Main 的开头。当片段中运行的代码完成返回主调用的意图时:

Intent意图 = new Intent(getActivity(), MainActivity.class);

startActivity(意图);

在折旧之前,当程序返回主屏幕时,屏幕会唤醒,以便用户选择下一步操作。 不知道我缺少什么,我已添加到清单中:

// MainActivity 中的 Java 代码 :

公共类 MainActivity 扩展 AppCompatActivity {

私有静态最终 int MY_REQUEST_CODE_PERMISSION = 1000;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
   
      if (Build.VERSION.SDK_INT >= 27) {
    //     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
        setShowWhenLocked(true);
        setTurnScreenOn(true);
        KeyguardManager guardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
        guardManager.requestDismissKeyguard(this, null);
    } else {

    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN |
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
            WindowManager.LayoutParams.FLAG_FULLSCREEN |
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);


            Window window = this.getWindow();
            window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
            window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
            window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

}

} }

//清单:

java android screen android-14 wake
1个回答
0
投票

我找到了一个解决方案,解决方案是将所有应用程序代码从片段移动到 MainAcitivity 并在 MainAcitivity 末尾创建一个唤醒方法 void waky(){ // 唤醒代码 } 然后在应用程序代码完成时调用唤醒方法:void waky();

© www.soinside.com 2019 - 2024. All rights reserved.