Closed dragonflylee closed 1 year ago
@dragonflylee 哇,感觉做的相当详细啊
目前 isBatteryCharging 对应的是左下角的小电池图标显示为绿色,目前看的话应该是充电中。
因为有一些内容还缺失着,所以之前在pc上把大部分内容都给隐藏了。
我能想到的有两处可以优化的位置:
比如,联网可能需要增加一下有线连接的判断——hasEthernetConnection,这个函数我在 SwitchPlatform 下实现了,如果有线连接返回为真时,对应的左下角的图标也会变化。
充电可能需要判断一下 充电中
和 接了电源
,在显示在左下角时图标或许也需要对应的调整,之前只考虑了switch这种有内置电池的设备。
Windows 和 macOS 的系统信息已经做的差不多,Linux 发行版众多还不知道如何下手 比如 RetroArch 查询网络信息使用了nmcli
非常感谢,那现在是合并进来还是等linux完善一些再说呢?
非常感谢,那现在是合并进来还是等linux完善一些再说呢?
再完善一下吧
感觉主要用户还是以 Debian 系为主?比如 RaspberryPi 和 Ubuntu-L4T 最近在搞 snap 打包,目前已 Ubuntu 18.04 为基础调试
@dragonflylee linux 你看到各种 cli 获取系统信息,有极大概率是到 proc 这种虚拟文件系统读取文件……,不过各种发行版都不一定会在一个固定路径里就是了。 可以直接找找 psutil 里是怎么读取网络信息的。
https://psutil.readthedocs.io/en/latest/#psutil.net_if_stats https://github.com/giampaolo/psutil/blob/master/psutil/_psosx.py#L259 https://github.com/giampaolo/psutil/blob/master/psutil/_psutil_posix.c#L457
感谢提供信息,另外的参考如下
/etc/resolv.conf
@xfangfang rebase 到 wiliwili 分支修复了 cmakefile的冲突,如果没问题就先合了吧。linux方面的暂时没时间研究了
@dragonflylee 另外 windows 主题那个要不要合并进来呢?可以添加点系统版本的判定?也可以先直接提交过来,我这周末挨个系统测试一遍,到时候发现什么问题再修改如何?
@dragonflylee 另外 windows 主题那个要不要合并进来呢?可以添加点系统版本的判定?也可以先直接提交过来,我这周末挨个系统测试一遍,到时候发现什么问题再修改如何?
Windows 主题那个属于非公开API,感觉还是不要用的好
Windows 主题那个属于非公开API,感觉还是不要用的好
@dragonflylee 好的,那等 mac 上那个小问题提交修改之后我就合并啦,周末会抽时间找不同系统再测试一遍。
非常感谢~
有注意到你在开发 jellyfin 的客户端,刚好有人在B站问我有没有jellyfin客户端,小小地推荐了一下~
有注意到你在开发 jellyfin 的客户端,刚好有人在B站问我有没有jellyfin客户端,小小地推荐了一下~
@xfangfang 那个jellyfin客户端大量借(chao)鉴(xi)了仁兄的代码,不介意吧
@xfangfang 那个jellyfin客户端大量借(chao)鉴(xi)了仁兄的代码,不介意吧
@dragonflylee 哈哈,开源嘛,能帮助到大家就好。
@dragonflylee 在这个PR基础上做了两处调整:
之前是所有状态不是 unknown(255)的情况都认为是有电池的,刚刚看到存在状态 no_battery (128) 的情况,这在台式机上可能会触发,现象是左下角电池容量显示大概有 200% 那么长。 顺便把这个图标分辨率从 44 调整到了 176。 https://github.com/xfangfang/borealis/commit/ab4f49ff5b578d0f6f77d3f2c45560840fcd777e
有一处直接使用了 CFStringGetCStringPtr 的返回值初始化 std::string,我在wifi和有线连接分别接入到不同的局域网的情况下触发了这个问题。根据搜索到的内容,在内部缓冲区不够时CFStringGetCStringPtr会返回空指针,在这种情况下调整为使用 CFStringGetCString 获取字符串。 https://github.com/xfangfang/borealis/commit/38ecdf9f919a66b72fda01766a514dc7948400d8
顺便一提,最近给wiliwili做了接收DLNA投屏的功能,这个功能需要获取到当前系统的IP,目前在单网卡下运行很好,因为这个pr已经把每个平台的ip获取都做好了,非常感谢。
但是在多网卡的情况下可能会出现问题,比如电脑给手机开热点、电脑的网线和wifi同时连接到不同的局域网,这种情况下会出现只有一个局域网能搜索到 DLNA接收端 的问题。 如果能获取到所有当前有效的ip,就能解决这个问题,如果同样需要DLNA功能的话,可以研究研究把获取ip和dns的接口改成列表的形式?
如果能同时获取到 子网掩码 就更好了
@xfangfang 做成列表确实可以,但是有时候会取到一些虚拟网卡的IP信息,目前还不太懂怎么分辨
① 似乎只能判断wifi是否打开,连接状态还未查到 ②
无法区分虚拟网卡(VPN、虚拟机)会误判为有线连接通过GetBestInterfaceEx
解决另外 isBatteryCharging 应该表示的是 充电中 还是 接了电源呢?