Andorid 8.1关机ACTION_REQUEST_SHUTDOWN的变化.

简介: Andorid 8.1关机ACTION_REQUEST_SHUTDOWN的变化.

平台


RK3399 + Android 8.1


问题


在旧SDK使用的关机接口在8.1上测试不可用, 代码如下:


//shutdown now
        String action = "android.intent.action.ACTION_REQUEST_SHUTDOWN";
        Intent shutdown = new Intent(action);
        shutdown.putExtra("android.intent.extra.KEY_CONFIRM", false);
        shutdown.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        try {
            startActivity(shutdown);
            finish();
        }catch(Exception e){
            e.printStackTrace();
        }


执行时发现找不到 activity.


原因


|-- frameworks/base/core/java/android/content/Intent.java

旧SDK:


public static final String ACTION_REQUEST_SHUTDOWN = "android.intent.action.ACTION_REQUEST_SHUTDOWN";


新SDK:


public static final String ACTION_REQUEST_SHUTDOWN
            = "com.android.internal.intent.action.REQUEST_SHUTDOWN";


Action值变了, 新代码如下


//shutdown now
        String action = "com.android.internal.intent.action.REQUEST_SHUTDOWN";
        if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.N){
            action = "android.intent.action.ACTION_REQUEST_SHUTDOWN";
        }
        Intent shutdown = new Intent(action);
        shutdown.putExtra("android.intent.extra.KEY_CONFIRM", false);
        shutdown.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        try {
            startActivity(shutdown);
            finish();
        }catch(Exception e){
            e.printStackTrace();
        }
相关文章
WSL2 占位程序接收到错误数据。 Error code: Wsl/Service/0x800706f7
WSL2 占位程序接收到错误数据。 Error code: Wsl/Service/0x800706f7
710 0
|
7月前
|
数据库连接
蓝易云 - Close,application.Terminate与halt有什么区别
以上解释是一般性的,具体的行为可能会根据你使用的编程语言或框架有所不同。在使用这些方法时,你应该查阅相关的文档,以了解它们在你的具体情况下的行为。
34 2
|
Windows
win11出现:终止代码:SYSTEM SERVICE EXCEPTION解决方案实列(不懂请私信up主)
终止代码解释:SYSTEM_SERVICE_EXCEPTION,又称为异常处理程序,是一种常见的蓝屏错误码,代表Windows系统检测到内核代码发生错误,无法响应某些系统服务,而且无法继续运行。它特别容易发生在许多设备驱动程序中,如显示驱动程序和音频驱动程序,因为他们成为Windows系统的必要组成部分。
2047 0
|
测试技术
loadrunner 技巧-模拟Run Logic中的随机Action运行
loadrunner 技巧-模拟Run Logic中的随机Action运行
101 0
|
Shell
奥比中光ROS启动节点运行异常退出:[camera/driver-2] process has finished cleanly
奥比中光ROS启动节点运行异常退出:[camera/driver-2] process has finished cleanly
505 0
奥比中光ROS启动节点运行异常退出:[camera/driver-2] process has finished cleanly
win10熄屏(睡眠)状态无法播放音乐问题的解决方案
win10熄屏(睡眠)状态无法播放音乐问题的解决方案
1469 0
win10熄屏(睡眠)状态无法播放音乐问题的解决方案
|
Android开发 开发者
【Android 高性能音频】AAudio 状态机 ( 创建 | 打开 Open | 开始 Started | 暂停 Paused | 刷写 Flushed | 停止 Stopped | 关闭 )
【Android 高性能音频】AAudio 状态机 ( 创建 | 打开 Open | 开始 Started | 暂停 Paused | 刷写 Flushed | 停止 Stopped | 关闭 )
443 0
|
Windows 开发工具 IDE
【终极解决方案】为应用程序池“XXX”提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误。该进程 ID 为“XXXX”。数据字段包含错误号。
原文:【终极解决方案】为应用程序池“XXX”提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误。该进程 ID 为“XXXX”。数据字段包含错误号。
3746 0