老话题但也许会帮助别人.
没有任何官方事件表明将执行Factory Data Reset.但是对于Android <= 22(Lollipop),存在非官方的(隐藏在代码中)广播意图android.intent.action.MASTER_CLEAR,它将在格式化外部存储时触发.如果您单击Android设置的恢复出厂设置,则会触发MASTER_CLEAR意图,结果您可以声明将恢复出厂设置.
示例代码:
// Class Member
private BroadcastReceiver receiver;
.
.
.
// In some method, e.g. onCreate()
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.ACTION_SHUTDOWN");
filter.addAction("android.intent.action.MASTER_CLEAR");
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(
Intent.ACTION_SHUTDOWN)) {
Log.d(TAG, "SHUTDOWN")
}
if (intent.getAction().equals("android.intent.action.MASTER_CLEAR")) {
Log.d(TAG, "FACTORY DATA RESET")
}
};
registerReceiver(receiver, filter);
Run Code Online (Sandbox Code Playgroud)
如果出厂重置,那么您将看到MASTER_CLEAR操作,然后是SHUTDOWN操作.我测试了Nexus 5和Androids 4.4.4,5.0,6.0,6.0.1并且正常工作.
| 归档时间: |
|
| 查看次数: |
2097 次 |
| 最近记录: |