Android 记录一次 代码重启设备的爬坑记录

4 篇文章 1 订阅
1 篇文章 0 订阅

>>长路漫漫立志行高远,寒夜漆漆心勇敢独行。 --致青春


一个简单的通过代码重启设备的功能捯饬了一天,虽然没明白坑到底是什么,但是使用方法倒是知道了。


需求

  • 针对已经root过的手机,可以通过代码控制设备重启。

思路

  • 通过shell命令控制设备重启。

过程

  • 网上铺天盖地的方法:
    //获取root权限,前提是设备已经root过
    Process process = Runtime.getRuntime().exec("su");
    //执行重启命令
    Runtime.getRuntime().exec("su -c reboot");

    可能别人能成功吧,这个命令我在模拟器上测试成功过一次,但是真机不行,刚好和别人相反,真是RLGL。

  • 实测通过成功的方法

    Process process = Runtime.getRuntime().exec("sh");
    //执行重启命令
    Runtime.getRuntime().exec("reboot");

    已经root过的设备好像不用再获取root权限了,一般权限就能执行reboot命令,root权限反而不能执行这个命令,知道原因的朋友欢迎指教。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 系统中,系统设置应用程序(com.android.settings)会使用 SharedPreferences 来保存用户的一些设置。SharedPreferences 是一种轻量级的数据存储方案,可以用来存储简单的键值对。 当用户打开 WiFi 时,系统设置应用程序会将这个设置保存在 SharedPreferences 中。具体来说,它会使用以下代码: ```java SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences.Editor editor = preferences.edit(); editor.putBoolean("wifi_enabled", true); editor.apply(); ``` 这段代码会将键值对 "wifi_enabled" 和 true 存储在 SharedPreferences 中。"wifi_enabled" 是一个自定义的键,用来表示 WiFi 是否打开。 当用户重启设备时,系统会重新启动系统设置应用程序。在系统设置应用程序的 onCreate 方法中,它会读取 "wifi_enabled" 的值,并根据它来决定是否打开 WiFi。具体来说,它会使用以下代码: ```java SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); boolean wifiEnabled = preferences.getBoolean("wifi_enabled", false); if (wifiEnabled) { WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); wifiManager.setWifiEnabled(true); } ``` 这段代码会从 SharedPreferences 中读取 "wifi_enabled" 的值,并根据它来决定是否打开 WiFi。如果 "wifi_enabled" 的值为 true,则打开 WiFi。 这就是系统设置应用程序如何记录上次 WiFi 打开状态并在下次重启时恢复状态的方式。它使用了 SharedPreferences 来存储和读取数据,并使用一个自定义的键来表示 WiFi 的状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值