• 版块
    • 热门
    • 最新
    • 标签
    • 关于
    • 捐赠
    • 注册
    • 登录

    【Lesson5】在qml中检测网络状态变化

    已定时 已固定 已锁定 已移动 教程
    1 帖子 1 发布者 596 浏览
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
      回复
      • 在新帖中回复
      登录后回复
      此主题已被删除。只有拥有主题管理权限的用户可以查看。
      • BirdZhangB 在线
        BirdZhang 船长
        最后由 BirdZhang 编辑

        代码来自 harbour-sailfinder

        利用qml的dbus接口连接net.connman,获取状态。
        简单的demo如下

        import QtQuick 2.0
        import Sailfish.Silica 1.0
        import Nemo.DBus 2.0
        
        Page{
        
            property bool networkStatus
        
            onNetworkStatusChanged: {
                if(networkStatus == false) {
                    // Network connection failure
                    // Do some thing
                }
            }
        
        
            // from https://github.com/DylanVanAssche/harbour-sailfinder/blob/develop/qml/harbour-sailfinder.qml
            DBusInterface {
                bus: DBus.SystemBus
                service: "net.connman"
                path: "/"
                iface: "net.connman.Manager"
                signalsEnabled: true
                Component.onCompleted: getStatus() // Init
        
                // Methods
                function getStatus() {
                    typedCall("GetProperties", [], function(properties) {
                        if(properties["State"] == "online") {
                            networkStatus = true
                        }
                        else {
                            networkStatus = false
                        }
                    },
                    function(trace) {
                        console.error("Network state couldn't be retrieved: " + trace)
                    })
                }
        
                // Signals
                function propertyChanged(name, value) {
                    if(name == "State") {
                        if(value == "online") {
                            networkStatus = true
                        }
                        else {
                            networkStatus = false
                        }
                    }
                }
            }
            
        }
        

        ———扬帆起航🚢

        1 条回复 最后回复 回复 引用 0
        • 1 / 1
        • 第一个帖子
          最后一个帖子
        Copyright © 2017-2024 旗鱼俱乐部 旗鱼系统交流论坛
        🐟🐠🐡论坛客户端下载🐟🐠🐡
        友情链接 SailfishOS.org | Jolla | 官方论坛 | 移植wiki| 第三方商店 | BirdZhang的博客| Securest
        除非另有声明,本网站采用知识共享“署名 4.0 中国大陆”许可协议授权。
        根据相关法律法规,本站不对欧盟用户提供服务。
        Powered by NodeBB