部分源码如下

package top.yunp.lockscreen

import android.app.admin.DevicePolicyManager
import android.content.ComponentName
import android.content.Intent
import android.os.Bundle
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.enableEdgeToEdge
import androidx.activity.result.contract.ActivityResultContracts


class MainActivity : ComponentActivity() {

    var devicePolicyManager: DevicePolicyManager? = null
    var deviceAdminComponent: ComponentName? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()

        devicePolicyManager = getSystemService(DEVICE_POLICY_SERVICE) as DevicePolicyManager
        deviceAdminComponent = ComponentName(this, LockScreenDeviceAdminReceiver::class.java)

        devicePolicyManager?.also { dpm ->
            if (dpm.isAdminActive(deviceAdminComponent!!)) {
                dpm.lockNow()
                finish()
            } else {
                val intent = Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN)
                intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, deviceAdminComponent)
                intent.putExtra(
                    DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                    "需要设备管理员权限以实现锁屏功能"
                )

                registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
                    if (it.resultCode == RESULT_OK) {
                        dpm.lockNow()
                    } else {
                        Toast.makeText(this, "权限被拒绝,无法锁屏", Toast.LENGTH_LONG).show();
                    }
                    finish()
                }.launch(intent)
            }
        }
    }
}