[Windows Phone 7 Development and Hacking] GoodDayToDie:
Tuesday 4 April:

It looks like Samsung support is still broken. Feel free to continue testing and reporting any issues, but it looks like I'll need to try a few different things. HTC and LG still work, of course.

UPDATE 1.3.2 - Saturday 2 April:

I've added some more checks to the registry write code. If you're not sure if the app is working for you (i.e. Samsung device owners) please try it and report what happens when you switch search options, or install a new option. If you get a messagebox indicating success, you're good to go. If it indicates failure, please tell me what the message was. Also, if it indicates failure the first time, try hitting Save again, and see if you get the same result.

UPDATE 1.3.1 - Saturday 2 April:

There may have been a bug in the way I was implementing registry access via the RIL Client COM control. Based on comparisons with some code known to work, I think this bersion might actually do it. This is of course untested - I don't have a Samsung device handy - but it may actually work. If not, PLEASE let me know what happens!

Also, this app officially *does* work on HTC phones using NoDo. I don't expect NoDo to break anything, but if it used to work and now doesn't, please let me know whether you've updated since it last worked.

Sorry for the long delay between versions. I've been working on something extremely exciting: an app to allow people to back up the important data on their phones (application storage, documents, and other things that don't automatically sync) to a PC, and restore it. I'll put a thread on here when it's ready to publish. In the meantime, if anybody has a way to get filesystem access on anything but HTC phones, *PLEASE* contact me!!

If it works for your Samsung device, PLEASE post a reply saying so! That would be very exciting news. :) If it doesn't, please check the error that appears. If it's the same as in this post, just say so. If not, please post at least the first few lines of the error so I know what happened.

DESCRIPTION:

A tool for quickly changing the search engine used when you hit the hardware Search button from within IE. You can use the search provider that comes configured on your phone, the built-in Bing app, or any other providers you've manually added. You can also add and use the mobile search page from Google, Yahoo, or Bing.

NOTE 1: This app does not change the search app used outside of IE! It only changes what happens when you're in Internet Explorer, and hit the Search button or enter something that isn't a valid URL in the location bar. If anybody figures out how to change Search button behavior anywhere else, please let me know!

NOTE 2: This app can not cause the search button to launch another app, aside from the pre-installed Bing search! It can only open a URL, not an app. I'd like to enable launching other apps, but that's a bigger project than I have time for at the moment.

TO INSTALL:

This app is not in the Marketplace and therefore requires a developer-unlocked device. You can unlock your device if you have a Marketplace account, or with ChevronWP7.

Download the ZIP file at the bottom of this post.

Extract the XAP file under \IESearchSwitcher\Bin\Release\.

Deploy the XAP file to your phone.

TO USE:

From the Applications list, run the "IE Search Switcher" app.

Select the search provider that you want to use from the drop-down.

Press the Save button to change your search provider.

If the provider you want is not listed, hit the Add button to install more options.

In the Add view, select an option from the drop-down and hit Install.

You can hit Refresh to see what provider is currently set.

TO REMOVE:

Press-and-hold on the application in the list, then hit "uninstall".

This will NOT change or reset your IE search option. It will stay as last set until changed again.

Coming features:

Samsung support (maybe 1.3.1?)

Ability to add your own search providers

Ability to edit or delete existing providers

Support for Dell and other OEMs (if possible)

Ability to launch apps other than Bing when you hit Search (if possible)

Supported devices:

HTC HD7: Tested, works

HTC, other: Reported working

Samsung: May work as of 1.3.1, please test!

LG: Reported working as of 1.1.0

Dell: Unknown, unlikely to work

Other: Unknown, unlikely to work

SAMSUNG USERS: I'm trying to support your phones, but the problem is very confusing. As best I can tell, the technique I've been using has worked successfully in other apps. I'm trying something different for 1.3, so please test it out and let me know what happens!

THIS IS STILL A BETA! If something doesn't work, PLEASE post a comment in this thread with your device, what you were trying to do, and what exception message you got. If there was no exception, just explain what didn't work. THANK YOU!

FOR DEVELOPERS: The full source code for the app is included. I've also added some improvements to the Homebrew library from when I downloaded it. It's from the source for the WebServer project, and is copyright Dave Amenta. If you want to use it to make your own apps, be sure to include the following:

DLLs. Check the ReadMe.txt in the Homebrew project for more info.

WPInteropManifest.xml

The capability ID_CAP_INTEROPSERVICES in WMAppManifest.xml

Version history:

1.3.2 - Added a read check after every write. (2 April 2011)

1.3.1 - Fixed a possible bug in the use of COMRilClient.dll for Samsung registry. (2 April 2011)

1.3.0 - Implemented a different native DLL for Samsung registry access. It may actually work now. (18 Feb 2011)

1.2.1 - Fixed the search included provider URLs for search-from-location-bar. Some library improvements. (17 Feb 2011)

1.2.0 - Added another library used by Samsung and some more library code based on other Samsung projects. (8 Feb 2011)

1.1.2 - Disabled the check for existing search providers with the Add list. You can now re-install Google if you got the bad version 1.1.0. (7 Feb 2011)

1.1.1 - Use http://www.google.com instead of http://m.google.com. (7 Feb 2011)

1.1.0 - Added the ability to install some hard-coded options: Google, Bing, and Yahoo mobile pages. LG now uses ProvisionXML. (7 Feb 2011)

1.0.1 - Fixed cross-platform support. Added necessary dlls and updated ReadMe. (27 Jan 2011)

1.0.0.0 Initial Release (27 Jan 2011)