Tizen SDK 2.2.x problems on Ubuntu 13.10

Posted by & filed under Dev', Tips.

Tizen Logo
Note : This should also apply to Ubuntu 13.04.

Don’t worry I still develop on Windows (Phone), this is just a quick tip for those who might get stuck with Tizen’s SDK (what do you mean there’s only 3 people in the world who have installed it ?)

Updating my Tizen SDK to the fresh 2.2.1 release on my Ubuntu 13.10 setup, I had an error popup telling my that SDB could not start and prompting me to check the logs.

Which I did and found the following :
11:51:44 E/DeviceMonitor: Failed to open socket channel
11:51:44 E/DeviceMonitor: Connexion refusée
java.net.ConnectException: Connexion refusée
at sun.nio.ch.Net.connect(Native Method)
at sun.nio.ch.SocketChannelImpl.connect(Unknown Source)
at java.nio.channels.SocketChannel.open(Unknown Source)
at org.tizen.sdblib.SmartDevelopmentBridge.openChannel(SmartDevelopmentBridge.java:137)
at org.tizen.sdblib.DeviceMonitor.openSdbConnection(DeviceMonitor.java:167)
at org.tizen.sdblib.DeviceMonitor.process(DeviceMonitor.java:361)
at org.tizen.sdblib.daemon.AbstractServer.run(AbstractServer.java:242)
at java.lang.Thread.run(Unknown Source)

After checking I was running a proper outdated version of Oracle’s JDK 6 (thanks again Tizen !), I tried to start an sdb server manually which outputted the following :
./sdb: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory

The libudev package was installed on my computer but there were no libudev.so.0 in the libs folder.
Adding a symlink to the .1 lib resolved the problem :
cd /lib/x86_64-linux-gnu/
sudo ln -s libudev.so.1 libudev.so.0

Tah dah 🙂 !

Vérifier si le Wi-Fi est connecté

Posted by & filed under Dev', Tips.

Un petit piège à éviter concernant la détection du Wi-Fi :
Le tutoriel proposé par la MSDN conseille d’utiliser DeviceNetworkInformation.IsWiFiEnabled pour détecter si le Wi-Fi est activé.

Attention, ce flag possède l’avantage d’être rapide à lire mais indique comme son nom l’indique si le Wi-Fi est activé dans les paramètres du téléphone, et en aucun cas si le Wi-Fi est actuellement connecté (l’utilisateur peut très bien n’être connecté à aucun réseau Wi-Fi, IsWiFiEnabled vous retournera true quand même).

Pour tester si le Wi-Fi est réellement connecté, il faut adjoindre un test (plus coûteux) pour connaître l’interface réseau utilisée par le runtime :

if (DeviceNetworkInformation.IsWiFiEnabled
	&& NetworkInterface.NetworkInterfaceType == NetworkInterfaceType.Wireless80211)
	// Le Wi-Fi est connecté

Ce snippet évite de faire l’appel coûteux vers NetworkInterfaceType si le Wi-Fi n’est pas du tout activé.