Mik*_*Ptr 6

老话题但也许会帮助别人.

没有任何官方事件表明将执行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并且正常工作.


Vis*_*war 0

没有跟踪恢复出厂设置的事件