Here's what I'm trying to achieve:
http://fuel5.com/connect.png

I've tried four methods limited or no success (see below for source and results), and I'm down to one last possibility. I don't have access to a linux box to test the real C API in osso-ic.h, and I would be happy to compensate any willing developer for his time if he can get this to work.

As I understand it, you can connect to any arbitrary wifi network using this function from osso-ic.h:
        gint osso_iap_connect(const char *iap, dbus_uint32_t flags, void *arg);
Described here:
http://www.maemo.org/platform/docs/howtos/ howto_connectivity_guide.html#InternetConnectivityAPI

Can someone try writing a simple command line program that connects to the wifi network in a string parameter?

Here's what I've tried on my own:

I tried using dbus directly, but it fails for everything but get_statistics:

#____file: dbus_tester.py_____
import dbus
bus = dbus.SystemBus()
obj = bus.get_object('com.nokia.icd', '/com/nokia/icd')
iface = dbus.Interface(obj, 'com.nokia.icd')
print iface.get_statistics()
#below doesn't work
#iface.connect('linksys',1)

After re-reading the docs for the tenth time I noticed this sentence: "Applications should use the ICd D-BUS API only for statistics querying (get_statistics) and receiving IAP state change information (status_changed)." This might explain why the dbus calls won't, except that using osso fails the same way:

#____file: osso_tester.py_____
import osso
osso_c = osso.Context("osso_tester","0.0.1",False)
print osso_c.rpc_run("com.nokia.icd", "/com/nokia/icd", "com.nokia.icd", 'get_statistics', wait_reply=True, use_system_bus=True)
#below doesn't work:
#print osso_c.rpc_run("com.nokia.icd", "/com/nokia/icd", "com.nokia.icd", 'connect', ('linksys',1), wait_reply=True, use_system_bus=True)

I also tried using the linux wireless tools, but this doesn't appear to connect to anything:

#___file: wifi_connect.sh_____
sudo gainroot <
/usr/sbin/iwconfig wlan0 essid $1
/usr/sbin/iwconfig wlan0 key $2
/usr/sbin/iwconfig wlan0 commit

The only thing I've been able to get working is to use the connectivity_preload hack, but that pops up a system modal dialog with tiny fonts and the wrong orientation.

#____file: sock_tester.py_____
import socket, os
os.system('source /usr/bin/connectivity_preload.sh')
s = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
s.connect(("www.google.com", 80))

My last ditch solution is to try creating a custom theme that makes the connect dialog full screen, with big fonts, and images that roughly match the link at the beginning of this message. It would be ugly and suck, but I'm out of ideas.

Hope one of you can help,
Scott

_______________________________________________
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers

Reply via email to