On 08/01/2013 08:23 AM, Jamie Strandboge wrote: > On 08/01/2013 05:23 AM, Iain Lane wrote: >> On Wed, Jul 31, 2013 at 05:42:43PM +0100, Iain Lane wrote: >>> On Wed, Jul 31, 2013 at 03:18:27PM +0400, Alberto Mardegan wrote: >>>> On 07/30/2013 07:50 PM, Iain Lane wrote: >>>>> Admittedly I didn't know about it ;-) But looking at that API reference >>>>> it seems to be more about mobile stuff whereas my question is a bit more >>>>> generic than that — I want to know if there's an internet connection of >>>>> any type available. >>>>> >>>>> Maybe I can't see it on this API or maybe Qt has something else for that >>>>> in which case I'd be happy to switch over. >>>> >>>> QNetworkAccessManager::networkAccessible(): >>>> >>>> https://qt-project.org/doc/qt-5.0/qtnetwork/qnetworkaccessmanager.html#networkAccessible-prop >>> >>> Thanks for the tip. It looks like it should work, however I always get >>> QNetworkAccessManager::UnknownAccessibility returned. Is there a trick? >> >> I found [0] and followed that. Then I get Accessible back. I was happy, >> until I tried disconnecting from the network (on my desktop) and still >> got Accessible. >> >> All the while NM has known the correct state, so if I could use that >> we'd be in happy land. >> >> Ho hum? >> >> [0] >> http://www.qtcentre.org/threads/37514-use-of-QNetworkAccessManager-networkAccessible?p=188372#post188372 >> > Along these lines-- we really need to define and document the canonical way > for > determining network accessibility. My team is tasked with defining apparmor > policy for this, and SDK app developers should ideally do this one way and > then > my team can write tests to make sure that it works for that use case. Everyone > coming up with their own method won't work with application confinement. > I looked into this a bit today. We should *not* rely on anything that uses network-manager to obtain this information. Its DBus API does not currently provide the answer to "Can I use the internet?" without granting a whole bunch of other accesses.
Instead, apps should use qtdeclarative5-systeminfo-plugin, specifically NetworkInfo[1]. I played with this today and rather than talking to network-manager, it just reads various files in /sys, /proc and needs 'inet stream' and 'inet dgram'. I'll be updating the apparmor policy group for 'connectivity' to allow these accesses so it works with qtdeclarative5-systeminfo-plugin. I also tested (a bit) with C++ using QHostAddress and QNetworkInterface. [1]http://doc.qt.digia.com/qtmobility-1.2/qml-networkinfo.html -- Jamie Strandboge http://www.ubuntu.com/ -- Mailing list: https://launchpad.net/~ubuntu-phone Post to : ubuntu-phone@lists.launchpad.net Unsubscribe : https://launchpad.net/~ubuntu-phone More help : https://help.launchpad.net/ListHelp