美文网首页
Flutter 实现贴耳熄屏

Flutter 实现贴耳熄屏

作者: 一块小板子 | 来源:发表于2022-07-28 00:17 被阅读0次

离脸近屏幕就黑了,离得屏幕主亮了
打电话的时候有了它就能避免误触


找不到

可是搜遍了整个flutter组织都没有发现相关代码
于是我打算自己动手丰衣足食⬇️

Android

在Android中API21之前是需要自己手动写距离传感器和熄屏亮屏的
而到API21也就是Android 5.0之后,PowerManager加入了新的常量

PROXIMITY_SCREEN_OFF_WAKE_LOCK

使得这个功能实现起来非常简单

if ((pm.getSupportedWakeLockFlags()
                 & PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK) != 0x0) {
                mProximityWakeLock =
                        pm.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, LOG_TAG);
            }

iOS

在iOS中,也有相应的方法实现

// 近距离传感器的实现封装在UIKit中

// 需要使用真机测试

import UIKit

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 系统APP自动开启了近距离检测(如:打电话,离脸近屏幕就黑了,离的远屏幕主亮了)
        // 但开发者APP需要手动开启
        UIDevice.current.isProximityMonitoringEnabled = true
        
        // 使用通知监听距离变化
        NotificationCenter.default.addObserver(self, selector: #selector(proximityStateChanged), name: NSNotification.Name.UIDeviceProximityStateDidChange, object: nil)
    }
    
    @objc private func proximityStateChanged(){
        if UIDevice.current.proximityState == true{ // 近距离
            print("太近了,都贴脸上了")
            // 近距离锁屏,就是让屏幕变黑,省电
            UIApplication.shared.isIdleTimerDisabled = false
        } else{ // 远距离
            print("太远了,都看不见你了")
            // 远距离不锁屏
            UIApplication.shared.isIdleTimerDisabled = true
        }
    }
}

两个平台的实现方法都有了,我们只需要做成Plugin就可以集成到自己的项目当中了

相关文章

  • Flutter 实现贴耳熄屏

    离脸近屏幕就黑了,离得屏幕主亮了打电话的时候有了它就能避免误触 可是搜遍了整个flutter组织都没有发现相关代码...

  • Flutter学习站点及项目中遇到的问题

    学习站点 flutter社区中文资源 Flutter实战[书] 闪屏页 Flutter 闪屏页实现 组件学习 15...

  • android 判断是否熄屏(亮屏&熄屏)

    有两种方案: 一、代码直接判定 二、接收广播 现在先说第一类方法(代码直接判定): 1、通过PowerManage...

  • Android亮屏和熄屏控制

    一. 前言我们的Android应用程序很多需要和亮屏和熄屏打交道,比如闹钟的时候,需要保持亮屏,之后又需要熄屏。...

  • Android自定义屏保

    Android亮屏、熄屏的时候会发出广播,通常在熄屏广播中启动屏保 注册屏幕广播 在该广播的Action中有着这样...

  • flutter:截屏

    1.flutter-截屏组件 2.flutter-截屏插件 3.flutter-iOS原生截屏 iOS代码 4.获...

  • Flutter 项目的闪屏页方案

    Flutter 项目的闪屏页方案Flutter 项目的闪屏页方案

  • Mac定时熄屏

    工作的时候,时常忘记时间,定时让电脑熄屏下,做个眼保健操,喝喝水,身体才是革命的本钱 以下操作为Mac 终端控制...

  • Flutter 闪屏页实现

    导入图片 在lib同级目录新建images目录,放入闪屏图片。 更新配置文件 打开pubspec.yaml文件,添...

  • Flutter iOS端防止截屏

    最近项目中需要实现防止截屏功能,网上很多都是推荐使用flutter_forbidshot,但是这个只能设置Andr...

网友评论

      本文标题:Flutter 实现贴耳熄屏

      本文链接:https://www.haomeiwen.com/subject/yckzirtx.html