我正在开发提供儿童保护(阻止淫秽内容、应用程序等)的自助服务终端模式的应用程序。我想禁用恢复出厂设置。我找到了使用 Samsung KNOX SDK(仅适用于三星设备)的解决方案,它可以阻止恢复出厂设置,甚至可以从启动菜单中擦除数据。但使用其他设备时,当用户打开出厂重置设置时,我只能使用
AccessibilityService
阻止屏幕。是否存在 SDK 或内置功能来禁用所有设备的擦除数据?您可以使用 Android Management API 来管理您的设备,并在设备的
Policy中将
factoryResetDisabled
设置为 true
。该API支持任何运行Android 5.1或更高版本的设备。
Android Management API 在底层设置了 DISALLOW_FACTORY_RESET 限制,该限制只能由设备所有者或配置文件所有者设置。
您可以通过adb设置设备管理,然后您不需要完全重置手机。请参阅 TestDPC 上的源代码和教程以获取帮助。
Fred 的回答是正确的,但如果你想要一些代码:
val devicePolicyManager = context.getSystemService(
Context.DEVICE_POLICY_SERVICE
) as DevicePolicyManager
devicePolicyManager.addUserRestriction(
ComponentName(context.applicationContext, MyDeviceAdminReceiver::class.java),
UserManager.DISALLOW_FACTORY_RESET
)
MyDeviceAdminReceiver
是您在将应用程序设置为设备所有者时扩展的类 DeviceAdminReceiver
。