28 lines
1.1 KiB
Kotlin
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))
|
|
}
|
|
}
|