百度上解析恢复出厂设置的过程有很多的资料,一搜一堆,这里我只说在高通平台上如何调用恢复出厂设置的方法。
进入package/app/Settings下find -name MasterClearConfirm.java 这个类,找到doMasterClear() 这个方法,
private void doMasterClear() {
Intent intent = new Intent(Intent.ACTION_MASTER_CLEAR);
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.
}
这个方法是发送广播的。然后我们可以在Settings里新建一个广播类用于接受应用发送的广播,接受到此广播后,再发送上面方法中的广播。具体做法:
1.新建广播类SendResetBroadcast
package com.android.settings;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class SendResetBroadcast extends BroadcastReceiver {
private boolean mEraseSdCard;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String action = intent.getAction();
if(action.equals("com.qucii.sendreset")){
intent = new Intent(Intent.ACTION_MASTER_CLEAR);
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
intent.putExtra(Intent.EXTRA_REASON, "MasterClearConfirm");
intent.putExtra(Intent.EXTRA_WIPE_EXTERNAL_STORAGE, mEraseSdCard);
context.sendBroadcast(intent);
}
}
}
2.在Settings中的AndroidManifest.xml注册广播
<receiver android:name="com.android.settings.SendResetBroadcast">
<intent-filter >
<action android:name="com.qucii.sendreset"/>
</intent-filter>
</receiver>
3.应用apk中发送一个广播
Intent intent = new Intent();
intent.setAction("com.qucii.sendreset");
this.sendBroadcast(intent);
编译Settings,push到测试机替换Settings.apk,打开应用apk,点击发送广播,手机恢复出厂设置。过程就是这样
本文介绍了在高通平台上的Android设备如何通过广播调用恢复出厂设置的方法。具体步骤包括在Settings应用中创建广播接收器类,并在应用中发送特定广播触发恢复出厂设置流程。
744

被折叠的 条评论
为什么被折叠?



