Android系统恢复出厂设置方法

您所在的位置:网站首页 安卓系统怎么出厂设置 Android系统恢复出厂设置方法

Android系统恢复出厂设置方法

2024-07-10 05:51| 来源: 网络整理| 查看: 265

最近在8.0系统上面调试公司自主开发的setting,发现无法恢复出厂,原来在7.1 7.0 6.0 5.1上面使用的广播已经没有效果,查阅8.0的原生Settings源码之后发现恢复出厂的代码在8.0上面已经偷偷摸摸地换成了用另外一个广播android.intent.action.FACTORY_RESET。原来如此。

特将恢复出厂的方法总结如下:

public static void startFactoryDefault(Context context) throws Exception { if (Build.VERSION.SDK_INT < 26) { context.sendBroadcast(new Intent("android.intent.action.MASTER_CLEAR")); } else { Intent intent = new Intent("android.intent.action.FACTORY_RESET"); intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); intent.setPackage("android"); context.sendBroadcast(intent); } }

PS: 注意在清单文件里面加上系统权限:

android:sharedUserId="android.uid.system"

就酱紫,老夫还需要管它什么版本号啊?! 这里写图片描述

--------------------------分割线-2019.11.12更新---------------------- 最近方案SDK更新到了9.0,实际测试验证无需改动代码,保持跟8.0一样的逻辑即可实现恢复出厂设置。查阅9.0的Settings源码后发现,9.0跟8.0恢复出厂设置是一样的逻辑,因此特意修改一下标题,so easy…

PS: 8.0 9.0恢复出厂部分逻辑源码如下:

MasterClearConfirm.java //8.0 private void doMasterClear() { Intent intent = new Intent(Intent.ACTION_FACTORY_RESET); intent.setPackage("android"); intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); intent.putExtra(Intent.EXTRA_REASON, "MasterClearConfirm"); intent.putExtra(Intent.EXTRA_WIPE_EXTERNAL_STORAGE, mEraseSdCard); getActivity().sendBroadcast(intent); // Intent handling is asynchronous -- assume it will happen soon. } //9.0 private void doMasterClear() { Intent intent = new Intent(Intent.ACTION_FACTORY_RESET); intent.setPackage("android"); intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); intent.putExtra(Intent.EXTRA_REASON, "MasterClearConfirm"); intent.putExtra(Intent.EXTRA_WIPE_EXTERNAL_STORAGE, mEraseSdCard); intent.putExtra(Intent.EXTRA_WIPE_ESIMS, mEraseEsims); getActivity().sendBroadcast(intent); // Intent handling is asynchronous -- assume it will happen soon. }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3