Category: Uncategorized

  • Win a trip to PDC in Los Angeles

    Microsoft New Zealand are running a competition to win a trip to the next Microsoft PDC event in Los Angeles. It is open to all developers living in New Zealand. All you need to do to enter is help them out with questionnaire:-

    “Targeted towards NZ developers, we want to get a better understanding and better cater our resources, events and training in the future. The survey is from now until the end of April. One lucky NZ developer will win an all expenses paid trip to the next PDC in LA.”

    Click here to complete the survey

  • Happy New Year

    My last post of 2009 is just a quick message to send all the readers of this blog best wishes for 2010 and to thank you for your support this year. 2009 was a very busy year and not just on the work front as this year I got married and moved half way across the world with my amazing wife. In hind-sight trying to organise both at the same time was very ambitious but it all worked out great and we’ve had some wonderful adventures! I can only hope that 2010 will be as exciting and rewarding.

  • Domain Name Woes

    Normally when I renew a domain it goes through smoothly in plenty of time and nothing “exciting” happens. For some reason the provider decided to do something to the domain at the same time as it was being automatically renewed which has lead inthehand.com to go into some form of limbo for the best part of a week. I have been assured that it will be restored within 48 hours. It has been very frustrating – if it had been a server issue it would have been easy to tweak the DNS to at least point to some kind of holding page which would have restored some form of service after a few hours. As the issue was with the domain name and I had no way to fix the name server records there was nothing I could do to restore any kind of functionality. For the time being you can still access the website using one of the alternative domains – www.inthehand.co.uk or www.inthehand.net. Sorry to anyone who has tried accessing the website or email during this period. If you have emailed me and not received a response please resend and replace .com with either .co.uk or .net and it’ll get through.

  • Widgets and Samsung

    There has been a lot of buzz recently around Widgets because of the support in the upcoming Windows Mobile 6.5 release. However don’t forget that Widgets are based on web standards and therefore can run on a wide variety of platforms. For example Samsung has just released a Widget SDK for their phone handsets:-

    http://innovator.samsungmobile.com/platform.main.do?platformId=12

    This covers a couple of Windows Mobile devices as well as those running on other platforms. Their SDK ties into the Eclipse developer tools which is probably not something which will be familiar to those who concentrate on Windows Mobile development. As we know though you can create Widgets with notepad if needs must.

    Because Widgets are standards based that doesn’t mean that you can easily write a single Widget and then run it on a variety of platforms. While Samsung have provided a consistent model for their different phones there are still cases where you would want to customise the widget for different device types. Likewise between different SDKs there are some device specific objects which are not present across all platforms – for example on Windows Mobile a number of SystemState properties are exposed. So while you may be able to share part of your code between different platforms you are going to need to make changes and test accordingly to support a wide range of devices.

  • Phone Recording in Windows Mobile

    There has been some buzz recently about further changes to the Windows Mobile 6.5 user experience since it was announced and the developer emulators released. For example this article has some screenshots:-

    http://forum.xda-developers.com/showthread.php?t=544445

    It shows changes to the soft-key menus at the bottom of the screen and a complete revamp of the tab control. Further on in this article there is a description of some registry keys which can be used to enable recording of voice calls which enables a new menu item inside the phone application. As it turns out these registry keys work on Windows Mobile 6.1 also as I was able to test on an HTC Touch Diamond 2. For reference the registry settings are:-

    [HKEY_LOCAL_MACHINESystemAudioRecording]
    “Enabled”=dword:00000001
    [HKEY_LOCAL_MACHINESoftwareMicrosoftVoice]
    “EnableCallRecordMenuItem”=dword:00000001
    “AllowInCallRecording”=dword:00000001

    Soft reset the device after setting these and you should notice a new Record menu item when in a phone call. You can listen to the recordings using the Notes application, they are given a unique filename with the timestamp of the call.

  • Samsung Release Windows Mobile SDK 1.2

    This latest release adds new APIs for FM Radio and devices with front and back cameras. The radio control allows you to turn on/off the radio, go to a specific frequency, seek up or down and read RDS data. You’ll need to uninstall the previous version if you have it before installing this package. So if you develop for Samsung devices what are you waiting for – grab the download here:-

    http://innovator.samsungmobile.com/down/cnts/toolSDK.detail.view.do?platformId=2&cntsId=4604

  • Roamin’ Umpire

    When a mobile system requires a data connection in the field you accept incurring a certain cost to establish a GPRS connection. You may be lucky enough to have an unlimited plan or you may be billed based on the volume of data you use. Either way reducing the amount of data you send and receive is valuable as it will reduce the time taken to synchronise data improving the user experience and reducing load on your servers.

    However have you considered what happens when you take the device out of your home network? Roaming data charges can vary from high to extortionate and you probably won’t have the luxury of a flat usage plan. In fact in a lot of cases you might want to restrict the application when used outside of the normal operating network – either to stop all data communications or to limit them to a minimum and perhaps only synchronise when the user manually initiates it rather than on a regular schedule. If you look at a couple of synchronisation applications – ActiveSync or Live Mesh for example these have a checkbox option to disable a synchronisation schedule when the device is roaming on a foreign network – the user has to actively change this before the device will automatically connect and synchronise data. This can be quite a good model to follow in your own applications. You may alternatively decide to set this behaviour based on a central policy rather than letting the user choose.

    In order to react to changes in the network you can use the State and Notifications Broker which exposes a property with the current roaming status – SystemState.PhoneRoaming which is a boolean property. Because you can trap this event you can react as soon as the device registers on a foreign network or when it returns home and customise your code accordingly. Unfortunately not all applications are this considerate – Microsoft’s MyPhone client will continue to sync automatically unless you disable scheduled synchronisation while roaming – the opposite behaviour to their other applications. Let’s hope this is tweaked in a software update to help avoid nasty surprises!

  • Emulating Bluetooth

    Alex Yakhnin pointed out this interesting article over on CodeProject showing how to use Bluetooth from within the Windows Mobile emulator:-

    http://blogs.msdn.com/priozersk/archive/2009/04/09/bluetooth-on-the-emulator.aspx

    Unfortunately it does require you to replace the stack on your host machine with FreeBT which is currently in Alpha so have a look through the Troubleshooting section for known issues first. I know lots of people have requested this for when they don’t have access to a real device so it may be useful for demonstrating applications or debugging even…

  • Samsung Release Windows Mobile SDK

    Samsung’s Mobile Innovator program has released an SDK for Samsung specific APIs on their Windows Mobile devices. Although this is a native code SDK all the functions I looked at were very P/Invoke friendly. For example once you’ve installed the device-side cab you can query the luminance sensor using:-

     

    [

    DllImport(“SamsungMobileSDK_1.dll”)]

     

     

    private static extern int SmiLightSensorGetIlluminance(out uint illuminance);

    The exact features available vary depending on the device model but the SDK contains functionality for LEDs, Camera Flash, Light Sensor, Scroll Wheel, Accelerometer etc

    You can download the SDK, and some Emulator skins for Samsung devices from here:-

    http://innovator.samsungmobile.com/down/cnts/category.main.list.do?platformId=2&cateId=147&cateAll=all

  • Microsoft Tag

    Microsoft have released a new beta product for Windows Mobile (and also iPhone) called Microsoft Tag
    This allows scanning of 2d barcodes with the device camera which can open specific URLs etc. The client software varies slightly depending on the capabilities of your device, on my Samsung Blackjack it offers realtime scanning – you just have to position the code roughly in a rectangular frame on the screen. On a HTC Touch device it invokes the camera capture dialog which is a lot more clunky.
    Go to http://gettag.mobi on your device to download the client. You can sign in to the tag.microsoft.com website using a Passport and create new tags yourself. Apparently this will support other 2d barcode types in the future for now it uses HCCB an arrangement of coloured triangles.
    The attached PDF contains a generated tag to get you started.
     
    Have fun!