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();
        }
相关文章
|
7月前
WSL2 占位程序接收到错误数据。 Error code: Wsl/Service/0x800706f7
WSL2 占位程序接收到错误数据。 Error code: Wsl/Service/0x800706f7
618 0
|
7月前
小米手机 fastboot模式 显示 press any key to shutdown 解决方法(亲测有效,已解决)
小米手机 fastboot模式 显示 press any key to shutdown 解决方法(亲测有效,已解决)
510 0
|
数据库
FastAPI(55)- Events: startup - shutdown 启动/关闭事件
FastAPI(55)- Events: startup - shutdown 启动/关闭事件
307 0
FastAPI(55)- Events: startup - shutdown 启动/关闭事件
|
iOS开发
苹果手机请求程序报network error错误
苹果手机请求程序报network error错误
341 0
|
开发工具
实战总结(一):关闭推送实现:Switch状态监听和SharedPreferences保存状态
实战总结(一):关闭推送实现:Switch状态监听和SharedPreferences保存状态
|
测试技术
loadrunner 技巧-模拟Run Logic中的随机Action运行
loadrunner 技巧-模拟Run Logic中的随机Action运行
70 0
|
Java
【JAVA】【SpringBoot】当重新启动项目的时候,需要把用户一些状态回退,但是回退失败了,项目却没有停止,可以用System.exit(1);
【JAVA】【SpringBoot】当重新启动项目的时候,需要把用户一些状态回退,但是回退失败了,项目却没有停止,可以用System.exit(1);
308 0
【JAVA】【SpringBoot】当重新启动项目的时候,需要把用户一些状态回退,但是回退失败了,项目却没有停止,可以用System.exit(1);
|
Android开发 开发者
【Android 高性能音频】AAudio 状态机 ( 创建 | 打开 Open | 开始 Started | 暂停 Paused | 刷写 Flushed | 停止 Stopped | 关闭 )
【Android 高性能音频】AAudio 状态机 ( 创建 | 打开 Open | 开始 Started | 暂停 Paused | 刷写 Flushed | 停止 Stopped | 关闭 )
374 0
SAP Spartacus 默认的 pwa,处于关闭状态还是打开状态?
SAP Spartacus 默认的 pwa,处于关闭状态还是打开状态?
SAP Spartacus 默认的 pwa,处于关闭状态还是打开状态?