[置顶] Android下实现自动关机的方法总结
最近在网上看了一些Android下实现自动关机的方法,有的不行,有的只适用一些机型,有的适用于大部分机型,笔者在此总结一下
法一:
Intent newIntent = new Intent(Intent.ACTION_SHUTDOWN);
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(newIntent);
这种方法笔者试过,运行时出错
法二:
try {
//获得ServiceManager类
Class<?> ServiceManager = Class
.forName("android.os.ServiceManager");
//获得ServiceManager的getService方法
Method getService = ServiceManager.getMethod("getService", java.lang.String.class);
//调用getService获取RemoteService
Object oRemoteService = getService.invoke(null,Context.POWER_SERVICE);
//获得IPowerManager.Stub类
Class<?> cStub = Class
.forName("android.os.IPowerManager$Stub");
//获得asInterface方法
Method asInterface = cStub.getMethod("asInterface", android.os.IBinder.class);
//调用asInterface方法获取IPowerManager对象
Object oIPowerManager = asInterface.invoke(null, oRemoteService);
//获得shutdown()方法
Method shutdown = oIPowerManager.getClass().getMethod("shutdown",boolean.class,boolean.class);
//调用shutdown()方法
shutdown.invoke(oIPowerManager,false,true);
} catch (Exception e) {
Log.e("shutdown", e.toString(), e);
}
利用反射调用oIPowerManager方法,此种方法在有些机型上是可以的,但有些机型上在Method shutdown = oIPowerManager.getClass().getMethod("shutdown",boolean.class,boolean.class);时会报出java.lang.NoSuchMethodException: shutdown [boolean, boolean] 错误,可能是这些机型不存在此方法
法三:
Intent intent = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
// 源码中"android.intent.action.ACTION_REQUEST_SHUTDOWN“ 就是 Intent.ACTION_REQUEST_SHUTDOWN方法
intent.putExtra("android.intent.extra.KEY_CONFIRM", false);
// 源码中"android.intent.extra.KEY_CONFIRM"就是 Intent.EXTRA_KEY_CONFIRM方法
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
这种方法笔者试过适用于大部分机型
最新文章
- SQLSERVER语句 in和exists哪个效率高本人测试证明
- Node.js开发者最常范的10个错误
- js 把数字转成2 ,8,16进制的方法
- JDBC学习1:详解JDBC使用
- poj 1006:Biorhythms(水题,经典题,中国剩余定理)
- String 与 byte[]相互转换
- C++ List的用法(整理)
- github 向导/介绍
- 【转】Android的材料设计兼容库(Design Support Library)
- spring 编程式事务管理和声明式事务管理
- Spring反射机制
- 64位gcc编译32位汇编
- Day07_面向对象第二天
- System.Web.HttpException: 无法向会话状态服务器发出会话状态请求
- HTTP请求WebTool
- 排序算法c语言描述---冒泡排序
- Angular2 + NativeScript 跨平台开发笔记(一)
- 微信iOS消息拦截插件教程-Tweak HelloWorld
- LibreOJ NOI Round #1 Day 1 B. 失控的未来交通工具
- 初学JSP