rk3288 -7.0 如何在应用中调用关机函数?

贴上实现代码:

public void shutdown(){

    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,String.class,boolean.class);
        //调用shutdown()方法
        shutdown.invoke(oIPowerManager,false,"userrequested",true);

    } catch (Exception e) {
        Log.e(TAG, e.toString(), e);
    }

这里我在网上参考的4.4的居多,所以在关机函数参数上有所差异,导致异常找不到shutdown方法,通过查看源码,添加参数即可。

2.<uses-permission android:name="android.permission.REBOOT"/>     //添加reboot权限

3.android:sharedUserId="android.uid.system"

 

这些操作执行之后再系统签名之后即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值