如何从ofono获得财产

How to get property from ofono

本文关键字:财产 ofono      更新时间:2023-10-16

我用c++编写了一个程序来获取ofono API的属性:

string Protocol [readwrite]
            Holds the protocol for this context.  Valid values
            are: "ip", "ipv6" and "dual".
        string Name [readwrite]
            The name is a free form string that describes this
            context.  The name should not be empty and limited
            to a short string for display purposes.
        dict Settings [readonly, optional]
            Holds all the IP network settings
            string Interface [readonly, optional]
                Holds the interface of the network interface
                used by this context (e.g. "ppp0" "usb0")
            string Method [readonly, optional]
                Holds the IP network config method
                    "static"- Set IP network statically
                    "dhcp"  - Set IP network through DHCP
            string Address [readonly, optional]

当我解析属性时,我使用

...
for (auto p:prop){
p.first //to get name of property
p.second.reader().get_string() //to get string value of property
p.second.reader().get_bool() //to get boolean value of property
...
}

我的问题是如何获得名称和值的字典类型?比如dict Settings [readonly, optional]怎么得到string Interface [readonly, optional]或者string Method [readonly, optional]

我找到了解决方案,只是我做了这个:

p是我的问题中定义的prop元素

...
    DBus::MessageIter iterator = p.second.reader();
    std::map< std::string, ::DBus::Variant > mapping;
    iterator >> mapping;
    for (auto map:mapping) {
            map.first// contain the name 
            map.second.reader().get_string() // contain the string value
    }
...