Files
DataControl/app/src/main/java/com/jttools/datacontrol/admin/AdminController.kt
T

28 lines
1.1 KiB
Kotlin

package com.jttools.datacontrol.admin
import android.app.admin.DevicePolicyManager
import android.content.ComponentName
import android.content.Context
import android.content.Intent
/** Protection anti-désinstallation : tant que DataControl est administrateur de l'appareil, Android refuse de le désinstaller. */
object AdminController {
fun component(context: Context) = ComponentName(context, AppDeviceAdminReceiver::class.java)
fun isActive(context: Context): Boolean =
context.getSystemService(DevicePolicyManager::class.java).isAdminActive(component(context))
fun requestIntent(context: Context): Intent =
Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN)
.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, component(context))
.putExtra(
DevicePolicyManager.EXTRA_ADD_EXPLANATION,
"Empêche la désinstallation de DataControl sans mot de passe."
)
/** À n'appeler qu'après vérification du mot de passe. */
fun deactivate(context: Context) {
context.getSystemService(DevicePolicyManager::class.java).removeActiveAdmin(component(context))
}
}