知识分享小达人 2023-12-18 20:51 采纳率: 83.3%
浏览 22
已结题

wifi断上电回连失败

1、安卓5.1,提前连接热点,;
2、设备反复断上电,理论上都会发生重连,但是重启10多次多,重连不上了;
3、查看wpa_supplicant.conf文件,发现network,保存的热点信息被清楚掉了;
4、日志打印了这句:
在重启后,通过下面函数加载wpa_supplicnat.conf文件时候,发现network信息被清除了;
WifiConfigStore( 404): Loading config and enabling all networks

因为network被清除,所以打印出了这句话
E/WifiConfigStore( 404): --- Begin wpa_supplicant.conf Contents ---【】
E/WifiConfigStore( 404): --- End wpa_supplicant.conf Contents ---

这个问题怎么解决呢?

  • 写回答

16条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-12-18 20:52
    关注
    获得2.00元问题酬金

    引自强大而免费的微信小程序:皆我知道

    确定network信息在重启前还是重启后被清除掉,可以通过以下步骤:

    1. 首先,在断电重启前获取wpa_supplicant.conf文件的内容,并保存起来,用于对比。
    2. 然后,执行断电重启操作。
    3. 断电重启完成后,再次获取wpa_supplicant.conf文件的内容。
    4. 将重启前和重启后的wpa_supplicant.conf文件内容进行对比,查看是否有差异。

    下面是一个示例的C语言代码,用于获取wpa_supplicant.conf文件内容并进行对比:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define MAX_FILE_SIZE 10000  // 文件最大大小
    
    // 获取文件内容
    char* getFileContent(const char* fileName) {
        FILE* file = fopen(fileName, "r");
        if (file == NULL) {
            printf("打开文件失败");
            return NULL;
        }
    
        char* content = (char*)malloc(sizeof(char) * MAX_FILE_SIZE);
        if (content == NULL) {
            printf("内存分配失败");
            fclose(file);
            return NULL;
        }
    
        size_t bytesRead = fread(content, sizeof(char), MAX_FILE_SIZE - 1, file);
        content[bytesRead] = '\0';
    
        fclose(file);
        return content;
    }
    
    // 比较两个文件内容是否相同
    int compareFileContent(const char* file1, const char* file2) {
        char* content1 = getFileContent(file1);
        char* content2 = getFileContent(file2);
    
        if (content1 != NULL && content2 != NULL) {
            if (strcmp(content1, content2) == 0) {
                printf("文件内容相同\n");
            } else {
                printf("文件内容不同\n");
            }
        } else {
            printf("获取文件内容失败\n");
        }
    
        free(content1);
        free(content2);
    
        return 0;
    }
    
    int main() {
        const char* fileBeforeRestart = "/path/to/wpa_supplicant_before.conf";
        const char* fileAfterRestart = "/path/to/wpa_supplicant_after.conf";
    
        // 获取重启前的文件内容
        // 请将以下代码替换为实际获取wpa_supplicant.conf文件内容的代码
        char* contentBeforeRestart = "Network Info before restart";
        FILE* fileBefore = fopen(fileBeforeRestart, "w");
        if (fileBefore != NULL) {
            fwrite(contentBeforeRestart, sizeof(char), strlen(contentBeforeRestart), fileBefore);
            fclose(fileBefore);
        }
    
        // 获取重启后的文件内容
        // 请将以下代码替换为实际获取wpa_supplicant.conf文件内容的代码
        char* contentAfterRestart = "Network Info after restart";
        FILE* fileAfter = fopen(fileAfterRestart, "w");
        if (fileAfter != NULL) {
            fwrite(contentAfterRestart, sizeof(char), strlen(contentAfterRestart), fileAfter);
            fclose(fileAfter);
    
            // 比较文件内容
            compareFileContent(fileBeforeRestart, fileAfterRestart);
        }
    
        return 0;
    }
    

    请将代码中的/path/to/wpa_supplicant_before.conf/path/to/wpa_supplicant_after.conf替换为实际的wpa_supplicant.conf文件路径。

    代码中,最终调用了compareFileContent函数对重启前和重启后的文件进行比较,输出比较结果:文件内容相同或文件内容不同。

    通过执行以上代码,可以获取到重启前和重启后的wpa_supplicant.conf文件内容,并进行对比,以确定network信息是否在重启前还是重启后被清除掉。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月26日
  • 修改了问题 12月18日
  • 创建了问题 12月18日

悬赏问题

  • ¥20 python忆阻器数字识别
  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真