desc:监听电池电量
parent
0883ef21c7
commit
12ea3e039b
Binary file not shown.
@ -0,0 +1,13 @@
|
||||
package com.yinuo.safetywatcher.watcher
|
||||
|
||||
import android.app.Application
|
||||
import com.lztek.toolkit.Lztek
|
||||
import com.yinuo.safetywatcher.watcher.utils.LztekUtil
|
||||
|
||||
class App : Application() {
|
||||
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
// LztekUtil.setObject(Lztek.create(this))
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package com.yinuo.safetywatcher.watcher.utils
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.os.BatteryManager
|
||||
import android.util.Log
|
||||
|
||||
object BatteryHelper {
|
||||
private var callbacks = mutableListOf<OnBatteryLevelCallback>()
|
||||
private var mLevel = -1;
|
||||
|
||||
private val receiver = object : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context?, intent: Intent?) {
|
||||
val level = intent?.getIntExtra(BatteryManager.EXTRA_LEVEL, -1)
|
||||
mLevel = level!!
|
||||
Log.i(this@BatteryHelper.javaClass.name, "onReceive level = $level")
|
||||
callbacks.forEach {
|
||||
if (level != null) {
|
||||
it.onLevel(level)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun init(context: Context) {
|
||||
watchBattery(context)
|
||||
}
|
||||
|
||||
private fun watchBattery(context: Context) {
|
||||
val filter = IntentFilter(Intent.ACTION_BATTERY_CHANGED)
|
||||
context.registerReceiver(receiver, filter)
|
||||
}
|
||||
|
||||
fun addCallBack(callBack: OnBatteryLevelCallback) {
|
||||
callbacks.add(callBack)
|
||||
if (mLevel != -1) {
|
||||
callBack.onLevel(mLevel)
|
||||
}
|
||||
}
|
||||
|
||||
fun removeCallback(callBack: OnBatteryLevelCallback) {
|
||||
callbacks.remove(callBack)
|
||||
}
|
||||
|
||||
fun release(context: Context) {
|
||||
callbacks.clear()
|
||||
context.unregisterReceiver(receiver)
|
||||
}
|
||||
|
||||
interface OnBatteryLevelCallback {
|
||||
fun onLevel(level: Int)
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package com.yinuo.safetywatcher.watcher.utils
|
||||
|
||||
import com.lztek.toolkit.Lztek
|
||||
|
||||
object LztekUtil {
|
||||
|
||||
private var mLztek: Lztek? = null;
|
||||
|
||||
fun setObject(value: Lztek) {
|
||||
mLztek = value
|
||||
}
|
||||
|
||||
fun getLztek(): Lztek {
|
||||
return mLztek!!
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package com.yinuo.safetywatcher.watcher.utils
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.net.wifi.WifiManager
|
||||
import android.util.Log
|
||||
|
||||
object WifiHelper {
|
||||
private var callbacks = mutableListOf<OnWifiLevelCallback>()
|
||||
|
||||
private val receiver = object : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context?, intent: Intent?) {
|
||||
val wifiState = intent?.getIntExtra(WifiManager.EXTRA_WIFI_STATE, -1)
|
||||
Log.i(this@WifiHelper.javaClass.name, "onReceive wifiState = $wifiState")
|
||||
callbacks.forEach {
|
||||
it.onEnable(wifiState == WifiManager.WIFI_STATE_ENABLED)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun init(context: Context) {
|
||||
watchWifi(context)
|
||||
}
|
||||
|
||||
private fun watchWifi(context: Context) {
|
||||
val filter = IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION)
|
||||
context.registerReceiver(receiver, filter)
|
||||
}
|
||||
|
||||
fun addCallBack(callBack: OnWifiLevelCallback) {
|
||||
callbacks.add(callBack)
|
||||
}
|
||||
|
||||
fun removeCallback(callBack: OnWifiLevelCallback) {
|
||||
callbacks.remove(callBack)
|
||||
}
|
||||
|
||||
fun release(context: Context) {
|
||||
callbacks.clear()
|
||||
context.unregisterReceiver(receiver)
|
||||
}
|
||||
|
||||
interface OnWifiLevelCallback {
|
||||
fun onEnable(enable: Boolean)
|
||||
fun onLevel(level: Int)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue