Tôi đã cố gắng khôi phục cài đặt gốc trong Android bằng cách sử dụng lớp RecoverySystem, nhưng tôi nhận được các lỗi quyền, mà tôi không thể ghi đè vì chúng là quyền của hệ thống. Tôi muốn biết nếu có một cách khác để thực hiện khôi phục cài đặt gốc?Thiết lập lại Android Factory Lập trình
Trả lời
Tôi khuyên bạn nên đưa người dùng đến hoạt động cài đặt phù hợp và để họ tự làm điều đó.
Xem hoạt động this tutorial và sử dụng các thiết lập android.provider.Settings.ACTION_PRIVACY_SETTINGS
bạn phải sử dụng DeviceAdministration (API 2.2 trở lên)
DevicePolicyManager mDPM; mDPM.wipeData (0);
Xem: http://developer.android.com/guide/topics/admin/device-admin.html
này hoạt động trên một thiết bị khác nhau tôi đã cố gắng. (hơn 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);
Điều này sẽ không còn hoạt động như trên Android 3.0 nữa. Sử dụng API quản trị thiết bị để yêu cầu xóa thiết bị. – CommonsWare
Ứng dụng của bên thứ ba chắc chắn nhất có thể thực hiện điều này.
Trên 2.2 thiết bị (bao gồm mới nhất 4.x), bạn sẽ phải sử dụng DevicePolicyManager và bao gồm các quyền trong tệp AndroidManifest.xml. Đối với các thiết bị cũ hơn, bạn có thể sử dụng bộ tải ngữ cảnh nước ngoài như được mô tả trong câu trả lời khác.
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
DevicePolicyManager mDPM;
ComponentName mDeviceAdmin;
On Tạo xác định phiên bản Android có và được xử lý trên các đối tượng
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);
}
Lớp WipeDataReceiver là một lớp học để thực hiện DeviceAdminReceiver, nhưng không có bất cứ ghi đè hoặc cập nhật mã.
public static class WipeDataReceiver extends DeviceAdminReceiver {
}
Khi tiếp tục, ban đầu sẽ phải xác nhận Khôi phục cài đặt gốc. khi Activity trả về kết quả, nó sẽ thực hiện wipeData. Nếu đó là Froyo hoặc ít hơn, bạn có thể chuyển hoạt động đặt lại cài đặt gốc của nhà máy.
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, Bạn chỉ có thể sử dụng bất kỳ ID nào để xử lý cuộc gọi kết quả hoạt động.
int REQUEST_CODE_ENABLE_ADMIN = 1234;
- 1. Android AnalogClock: thiết lập drawables lập trình
- 2. Android 2.2: Khởi động lại thiết bị theo lập trình
- 3. Android làm thế nào để thiết lập windowanimation lập trình
- 4. Thiết lập Factory Girl with Test :: Unit và Shoulda
- 5. Khóa thiết bị Android theo lập trình
- 6. Làm thế nào để thiết lập Android thiết bị ngày/giờ lập trình
- 7. Thiết lập lại một setTimeout
- 8. Thay đổi ID thiết bị trên trình giả lập Android?
- 9. Android - Thiết lập Roboguice 2.0?
- 10. Khởi động lại/Tắt nguồn Trình giả lập Android
- 11. Lập trình Python Android
- 12. android.content.res.Resources $ NotFoundException khi lập trình thiết lập android.R.attr.listChoiceIndicatorMultiple
- 13. C# Cách lập trình thay đổi thiết bị phát lại
- 14. Thiết lập trình phục pc bluetooth cho android
- 15. Android API Version lập trình
- 16. Kết nối thiết bị USB với Trình giả lập Android?
- 17. Cách xác định thiết bị Android theo cách lập trình?
- 18. Chuyển đổi ngôn ngữ lập trình trên thiết bị Android
- 19. Lập trình Scala cho Android
- 20. Làm thế nào tôi có thể thiết lập lại một NSSearchField ca cao lập trình?
- 21. Trình giả lập Android ABI
- 22. (lại) gắn thẻ SD trên trình giả lập android
- 23. jquery cuộn vô hạn "thiết lập lại"
- 24. Nút thiết lập theo phong cách phẳng lập trình
- 25. lập trình thiết lập kích thước heap java tối đa
- 26. Lập trình thiết lập ComboBox SelectedItem trong WPF (3.5sp1)
- 27. Lập trình Cacao, hãy thiết lập đại biểu
- 28. Thiết lập một UIActivityIndicatorView cho UITableViewController lập trình
- 29. Lập trình thiết lập vị trí mô phỏng iphone
- 30. thiết lập MATLAB - dừng lại nếu lỗi
theo cách thủ công? Tại sao một ứng dụng * bao giờ * cần quyền để thực hiện khôi phục cài đặt gốc? – kcoppock
Điều này nghe có vẻ rất tinh ranh. Nếu người dùng muốn khôi phục cài đặt gốc, họ có thể tự làm. Những quyền đó có lý do rất tốt. – Jems
Chưa kể, nếu ứng dụng của bạn đã làm điều này, nó cũng sẽ biến mất sau khi khôi phục cài đặt gốc ... – kcoppock