• [MT8766][Android12] 取消WIFI热点超过10分钟没有连接自动关闭设定


    开发平台基本信息

    芯片: MT8766
    版本: Android 12
    kernel: msm-4.19

    问题描述

    之前有个需求要设备默认开启WIFI热点,默认开启usb共享网络;而热点在原生的设定里面有个超时机制,如果在限定时间内,没有任何设备连接共享出来的网络,则会自动关闭热点。但是,客户的需求是一直保持共享网络开启。

    解决方法

    热点超时时间是读取config文件中config_wifiFrameworkSoftApShutDownTimeoutMilliseconds的值;这个在低版本是写在framework目录下;而在Android12中,则是放在了packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml;默认值是
    600000
    ;也就是10分钟;所以,改大这个默认值也可以实现默认不关闭,但是,最大也就是int类型的最大值2147483647;大概是10天左右。

    • 还有一种做法,就是在触发超时关闭共享网络的地方,跳过关闭的步骤,具体实现如下:
    --- a/packages/modules/Wifi/service/java/com/android/server/wifi/SoftApManager.java
    +++ b/packages/modules/Wifi/service/java/com/android/server/wifi/SoftApManager.java
    @@ -1424,21 +1424,21 @@ public class SoftApManager implements ActiveModeManager {
                             // Already started, ignore this command.
                             break;
                         case CMD_NO_ASSOCIATED_STATIONS_TIMEOUT:
    -                        if (!mTimeoutEnabled) {
    -                            Log.wtf(getTag(), "Timeout message received while timeout is disabled."
    -                                    + " Dropping.");
    -                            break;
    -                        }
    -                        if (getConnectedClientList().size() != 0) {
    -                            Log.wtf(getTag(), "Timeout message received but has clients. "
    -                                    + "Dropping.");
    -                            break;
    -                        }
    -                        mSoftApNotifier.showSoftApShutdownTimeoutExpiredNotification();
    -                        Log.i(getTag(), "Timeout message received. Stopping soft AP.");
    -                        updateApState(WifiManager.WIFI_AP_STATE_DISABLING,
    -                                WifiManager.WIFI_AP_STATE_ENABLED, 0);
    -                        quitNow();
    +                        // if (!mTimeoutEnabled) {
    +                        //     Log.wtf(getTag(), "Timeout message received while timeout is disabled."
    +                        //             + " Dropping.");
    +                        //     break;
    +                        // }
    +                        // if (getConnectedClientList().size() != 0) {
    +                        //     Log.wtf(getTag(), "Timeout message received but has clients. "
    +                        //             + "Dropping.");
    +                        //     break;
    +                        // }
    +                        // mSoftApNotifier.showSoftApShutdownTimeoutExpiredNotification();
    +                        // Log.i(getTag(), "Timeout message received. Stopping soft AP.");
    +                        // updateApState(WifiManager.WIFI_AP_STATE_DISABLING,
    +                        //         WifiManager.WIFI_AP_STATE_ENABLED, 0);
    +                        // quitNow();
                             break;
                         case CMD_NO_ASSOCIATED_STATIONS_TIMEOUT_ON_ONE_INSTANCE:
                             if (!isBridgedMode() || mCurrentSoftApInfoMap.size() != 2) {
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
  • 相关阅读:
    module pandas has no attribute Int64Index
    14 【TS类型声明 keepAlive】
    eNSP-OSPF协议其他区域不与骨干区域相连解决方法2
    Vue中使用components的使用技巧
    精讲Java中的数据类型与变量
    Goby 漏洞发布|Revive Adserver 广告管理系统 adxmlrpc.php 文件远程代码执行漏洞(CVE-2019-5434)
    如何实现主机与容器之间数据的同步?以nginx:v1镜像为例,进行验证。提交操作步骤
    企业财务数字化转型怎么才能落地?_光点科技
    初识VBA代码及应用VBA代码第四节:如何录制宏
    大屏项目也不难
  • 原文地址:https://blog.csdn.net/Hebin320320/article/details/134301054