Windows Phone location tool in emulator down? No problem!

To enable developers to test applications that somehow rely on location services without having an actual device, Microsoft added a location tool to the Windows Phone emulator back in Mango release. For some reason, the tool stopped working and the Bing map is not rendered if you try to use it today. Without a map, you can’t add pushpins to it which would simulate your device actually having latitude and longitude – location somewhere on Earth. Luckily, there’s a workaround!

EDIT: The problem has been recognized by Microsoft, and the team seams to be working on it. Currently, there is another workaround shared by Eric Fleck from Microsoft here: http://forums.create.msdn.com/forums/p/107391/633268.aspx

It comes down to change registry entries. Seriously, have in mind that you are doing this at your OWN RISK!!

To work around the problem by adding a Browser Emulation mode entry for XDETools.exe in the registry. caution: The side-effects of this work-around are unknown. (... I have only done ad-hoc tests to verify it works.) On 64 bit Windows use: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftInternet ExplorerMAINFeatureControlFEATURE_BROWSER_EMULATION] "XDETools.exe"=dword:00002328 on 32 bit Windows use: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerMAINFeatureControlFEATURE_BROWSER_EMULATION] "XDETools.exe"=dword:00002328

Thanks to my reader danipham for sharing this down in the comments.

Keep reading if you'd like to know how to edit the location entries yourself without the map. :)

First I thought that I was the only one having this problem. Then I noticed a question on StackOverflow which described the problem I was having, so I assume that something is actually wrong with the Bing service that was responsible for the map in this tool.

What if the map doesn’t show, and you need the emulator location tool immediately? When the map doesn’t show, it displays a blank, white screen, like this:

image

If you have recorded some data earlier when the location tool was working, then you can simply load it by pressing the Load button in the lower right corner of the tool. But what if you haven’t?

The location data is recorded in XML file format. It has a very simple structure. Simply open Notepad or any other plain text editor and add your locations in the following structure:

<?xml version="1.0" encoding="utf-8"?>  
<WindowsPhoneEmulator xmlns="http://schemas.microsoft.com/WindowsPhoneEmulator/2009/08/SensorData">
    <SensorData>
        <Header version="1" />
        <GpsData latitude="" longitude="" />
        <GpsData latitude="" longitude="" />
        <GpsData latitude="" longitude="" />
    </SensorData>
</WindowsPhoneEmulator>

I found this answer thanks to "Konaju Games" on AppHub forum and decided to share it here for everyone who might encounter the same situation.

The main tag is WindowsPhoneEmulator, and it has a child element SensorData. SensorData has GpsData children which represent different locations on the map. They are defined by latitude and longitude. I suggest you use Bing maps to get the latitude and longitude of particular locations. Go to

http://www.bing.com/maps

Then find the location you need and right click on it. A popup will open with two double values on the top which are latitude and longitude, respectively.

image

Enjoy, test your app using the emulator location tool if you don’t have a device, and get the app published as soon as you can. ;)

comments powered by Disqus