मैंने रिकवरी सिस्टम सिस्टम का उपयोग करके एंड्रॉइड में फ़ैक्टरी रीसेट करने की कोशिश की, लेकिन मुझे अनुमति त्रुटियां मिलती हैं, जिन्हें मैं ओवरराइट नहीं कर सकता क्योंकि वे सिस्टम अनुमतियां हैं। मैं जानना चाहता हूं कि फ़ैक्टरी रीसेट करने का कोई और तरीका है या नहीं?एंड्रॉइड फैक्टरी प्रोग्रामेटिक रीसेट रीसेट करें
उत्तर
मेरा सुझाव है कि आप उपयोगकर्ता को उचित सेटिंग्स गतिविधि में भेजें और उन्हें स्वयं करने दें।
देखें this tutorial और उपयोग सेटिंग्स गतिविधि android.provider.Settings.ACTION_PRIVACY_SETTINGS
आप DeviceAdministration (एपीआई 2.2 या इसके बाद के संस्करण)
DevicePolicyManager mDPM उपयोग करने के लिए है, mDPM.wipeData (0);
देखें: http://developer.android.com/guide/topics/admin/device-admin.html
यह एक कई अलग अलग उपकरणों मैं कोशिश की है पर काम करता है। (एक से अधिक 20)
Context foreignContext = createPackageContext("com.android.settings", Context.CONTEXT_IGNORE_SECURITY | Context.CONTEXT_INCLUDE_CODE);
Class<?> yourClass = foreignContext.getClassLoader().loadClass("com.android.settings.MasterClear");
Intent intent = new Intent(foreignContext, yourClass);
startActivity(intent);
यह अब एंड्रॉइड 3.0 के आसपास काम नहीं करना चाहिए। किसी डिवाइस को वाइप करने के लिए डिवाइस एडमिन एपीआई का उपयोग करें। – CommonsWare
तीसरे पक्ष के अनुप्रयोगों सबसे निश्चित रूप से ऐसा कर सकते हैं।
2.2+ डिवाइस (नवीनतम 4.x सहित) पर आपको डिवाइसपॉलिसी मैनेजर का उपयोग करना होगा और AndroidManifest.xml में अनुमतियां शामिल करनी होंगी। पुराने उपकरणों के लिए आप अन्य संदर्भ में वर्णित विदेशी संदर्भ लोडर का उपयोग कर सकते हैं।
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
DevicePolicyManager mDPM;
ComponentName mDeviceAdmin;
पर एंड्रॉयड संस्करण का निर्धारण बनाएँ और वस्तुओं
currentAPIVersion = Build.VERSION.SDK_INT;
if (currentAPIVersion >= android.os.Build.VERSION_CODES.FROYO) {
//2.2+
mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
mDeviceAdmin = new ComponentName(this, WipeDataReceiver.class);
}
WipeDataReceiver वर्ग DeviceAdminReceiver लागू करने के लिए एक वर्ग था पर संभाल करने के लिए, लेकिन किसी भी ओवरराइड या कोड अपडेट नहीं था।
public static class WipeDataReceiver extends DeviceAdminReceiver {
}
फिर से शुरू करें, शुरुआत में फैक्टरी रीसेट की पुष्टि करनी होगी। जब गतिविधि परिणाम देता है तो यह wipeData निष्पादित करेगा। यदि यह फ्रायओ या कम है, तो आप स्टॉक फैक्टरी रीसेट गतिविधि को कूद सकते हैं।
if (currentAPIVersion >= android.os.Build.VERSION_CODES.FROYO) {
// 2.2+
if (!mDPM.isAdminActive(mDeviceAdmin)) {
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdmin);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "Process will remove user installed applications, settings, wallpaper and sound settings. Are you sure you want to wipe device?");
startActivityForResult(intent, REQUEST_CODE_ENABLE_ADMIN);
} else {
// device administrator, can do security operations
mDPM.wipeData(0);
}
} else {
// 2.1
try {
Context foreignContext = this.createPackageContext("com.android.settings", Context.CONTEXT_IGNORE_SECURITY | Context.CONTEXT_INCLUDE_CODE);
Class<?> yourClass = foreignContext.getClassLoader().loadClass("com.android.settings.MasterClear");
Intent i = new Intent(foreignContext, yourClass);
this.startActivityForResult(i, REQUEST_CODE_ENABLE_ADMIN);
} catch (ClassNotFoundException e) {
}
}
@TapanHP, आप गतिविधि परिणाम कॉलबैक को संभालने के लिए किसी भी आईडी का उपयोग कर सकते हैं।
int REQUEST_CODE_ENABLE_ADMIN = 1234;
- 1. एंड्रॉइड रीसेट
- 2. हाईचार्ट्स ज़ूम रीसेट बटन छुपाएं, ज़ूम रीसेट प्रोग्रामेटिक रूप से
- 3. UIGestureRecognizer को रीसेट/रीसेट कैसे करें
- 4. रीसेट रीसेट "used_memory_peak" stat
- 5. एंड्रॉइड - व्यूपेजर स्क्रॉलिंग रीसेट
- 6. लोडर और ऑनलोडर रीसेट एंड्रॉइड
- 7. आइटम रीसेट करें क्रमांकित
- 8. होमब्री फॉर्मूला रीसेट करें
- 9. ऑटोऑम्बर बीज रीसेट करें
- 10. TinyMCE बॉक्स रीसेट करें
- 11. प्रोग्रामेटिक रूप से रीसेट करें Windows XP IDLE समय
- 12. रीसेट पासवर्ड
- 13. साफ कर लें डेटा/फैक्टरी एडीबी के माध्यम से रीसेट
- 14. मैन्युअल रीसेट इवेंट, ऑटो रीसेट इवेंट
- 15. सीएसएस-रीसेट
- 16. क्रोनोमीटर रीसेट
- 17. एचटीएमएल रीसेट
- 18. रीसेट Resharper
- 19. सभी चुनिंदा ड्रॉपडाउन रीसेट करें
- 20. रीसेट करें XCode शॉर्टकट कुंजियां
- 21. कॉलम रीसेट करें मल्टीइंडेक्स स्तर
- 22. एनीमेशन ड्रायबल रीसेट कैसे करें
- 23. इफस्ट्रीम - ईओएफ बिट रीसेट करें
- 24. स्थानीय गिट भंडार रीसेट करें
- 25. पूर्ववत करें "Git रीसेट --merge"
- 26. ORMLite सभी टेबल रीसेट करें
- 27. ब्लूटूथ पीयर कनेक्शन रीसेट
- 28. रिवाइंड()/रीसेट() क्षमता
- 29. मैं UIGestureRecognizer को प्रोग्रामेटिक रूप से समाप्त/रीसेट कैसे करूं?
- 30. आईफोन को फ़ैक्टरी सेटिंग्स पर प्रोग्रामेटिक रूप से रीसेट करना
मैन्युअल रूप से? एक ऐप * कभी * फ़ैक्टरी रीसेट करने की अनुमति क्यों होगी? – kcoppock
यह वास्तव में डोडी लगता है। यदि कोई उपयोगकर्ता फ़ैक्टरी रीसेट चाहता है, तो वे इसे स्वयं कर सकते हैं। वे अनुमतियां बहुत अच्छे कारण के लिए हैं। – Jems
उल्लेख नहीं है, अगर आपका ऐप ऐसा करता है, तो यह भी फैक्टरी रीसेट के बाद भी चला जाएगा ... – kcoppock