zoukankan      html  css  js  c++  java
  • 监听锁屏广播,开启1个像素的Activity

    在锁屏的时候启动一个1个像素的Activity,当用户解锁以后将这个Activity结束掉。

    定义一个1像素的Activity,在该Activity中动态注册自定义的广播。

    class OnePixelActivity : AppCompatActivity() {

    private lateinit var br: BroadcastReceiver

    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    //设定一像素的activity
    val window = window
    window.setGravity(Gravity.LEFT or Gravity.TOP)
    val params = window.attributes
    params.x = 0
    params.y = 0
    params.height = 1
    params.width = 1
    window.attributes = params
    //在一像素activity里注册广播接受者 接受到广播结束掉一像素
    br = object : BroadcastReceiver() {
    override fun onReceive(context: Context, intent: Intent) {
    finish()
    }
    }
    registerReceiver(br, IntentFilter("finish activity"))
    checkScreenOn()
    }

    override fun onResume() {
    super.onResume()
    checkScreenOn()
    }

    override fun onDestroy() {
    try {
    //销毁的时候解锁广播
    unregisterReceiver(br)
    } catch (e: IllegalArgumentException) {
    }
    super.onDestroy()
    }

    /**
    * 检查屏幕是否点亮
    */
    private fun checkScreenOn() {
    val pm = this@OnePixelActivity.getSystemService(Context.POWER_SERVICE) as PowerManager
    val isScreenOn = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
    pm.isInteractive
    } else {
    pm.isScreenOn
    }
    if (isScreenOn) {
    finish()
    }
    }
    }

  • 相关阅读:
    Vue v-if v-for v-bind v-on
    Vue v-bind的使用
    Vue绑定事件
    vue绑定内联样式
    Vue简单使用
    js实现UTC时间转为北京时间,时间戳转为时间
    setTimeOut函数传参数
    直播聊天室,点亮效果,jquery实现
    聊天室自动滚动效果实现
    融云rongCloud聊天室的使用
  • 原文地址:https://www.cnblogs.com/hyhy904/p/11291158.html
Copyright © 2011-2022 走看看