Sep 7 2010

Getting the Phone Call History

Category: MobileJoel Ivory Johnson @ 03:15

I've always resorted to using third party utilities for collecting the call history in my Windows Phone. But some one in the forums asked how to retrieve the call history. I finally took a look at this and it was much easier than I thought. The process is as simple as opening a handle to the call history, reading the call history, and then closing the handle. I put together the following code example for the user in the forums that had asked about it and thought to share it here. 

#include "stdafx.h"
#include "phone.h"



int _tmain(int argc, _TCHAR* argv[])
{
	HANDLE callLogHandle;
	CALLLOGENTRY logEntry;

	if(S_OK!=PhoneOpenCallLog(&callLogHandle))
		return -1;//failure
	
	logEntry.cbSize = sizeof(CALLLOGENTRY);

	while(S_OK==PhoneGetCallLogEntry(callLogHandle, &logEntry))
	{
		//The logEntry structure is populated with call data. 
		//do something with it here.
	}

	PhoneCloseCallLog (callLogHandle);

	return 0;
}

 

Tags:

Jun 23 2010

Angry Bird Redux?

Category: Joel Ivory Johnson @ 06:55

I tend to keep track of what's going on in the Windows Marketplace for Mobile and remember seeing an application with the same functionality as mine in the store for India. As of last night it was also available in the USA application store. That's fine, after all competition is a good thing.

What I didn't notice until later was the keywords that the application was associated with. If one were to do a search for my application by it's title the other application comes up too. It reminds me of the Angry bird thing all over again (If you aren't familiar with that search for Angry Bird in the iTunes App Store. In addition to finding a game by that name you'll also find a number of other applications from other publishers making it hard to pick out the actual game).

This specific example is not one of much concern; the only reason the application has a price was to prove to some one that it wouldn't sell (and boy was I wrong). But it does bring up a higher concern. In addition to the Angrybird case there seem to be a number of different applications in all the Marketplaces that I've looked at in which one application intentionally makes an association with another to "ride on it's success." One could argue it's common practice. There was a USA case in which one insurance company had done something so that when web searches were done for some other insurance company both companies would come up. The other insurance company took it to court and the ruling was that the practice was fair. All the same it makes one ask how they can ensure that a consumer can differentiate their product from another. I can't say that I know the answer to that, but it is something worth thinking about.

Update : Ugh! I was trying to find an applicaiton called "SpeedTest" for the iPad and ran into problems identifying it. Turns out what I needed is named "SpeedTest.net." But now there are lots of other applications using "SpeedTest" in their names!

Tags: ,

May 21 2010

Chris Tacke on "Why Windows Mobile Sucks"

Category: MobileJoel Ivory Johnson @ 08:18

If you are familiar with Chris Tacke one thing you know about him is he's quite honest about what he thinks and doesn't tend to soften or sugar coat his words. One of his last post, "Why Windows Mobile Sucks" is no exception.  To keep things in perspective given any mobile operating system one can write a "Why xxxxx sucks." So I don't so much look at his article as rating Windows Mobile as inferior but instead as point out where the OS has room for improvement (and it looks like that improvement will show with Windows Phone 7).

Despite Windows Mobile being an adaptive and flexible operating system the point that Chris hits on is something that any one that has tried targeting a number of devices has encountered. In addition to Windows Mobile being adapted to several hardware configurations there are also APIs within Windows Mobile that are OEM dependent; the OEM can choose whether or not to implement certain APIs and for some of those optional APIs when they do implement them there are variances in how they will behave from one OEM to another (or even on the same device from one firmware version to another). Chris ran into this with the power management APIs. The methods he planned to use were there but calling them had no impact on the device. In trying to help him out I made use of the same APIs on a TyTn II and was able to get some of them to work as needed. 

Chris decided to leave the task alone. Trying to get the code to work reliably across a range of Windows Mobile devices was going to be too difficult. I remember encountering something like this when dealing with a graphics related problem. With the problem I encountered I found that on some devices OpenGL 1.x was the better API to use. On another OpenGL 2.0, on another DirectX and still some other devices simply were not computationally capable of performing the operations needed. I ended up deciding to abandon that project because there was too much risk in the number of different experiences that some one would have had with the program. 

With Windows Phone 7 I don't expect to run into problems like this. Microsoft is taking control of the user experience is has higher requirements on the capabilities of the devices and the operating system image on the device. 

Tags: ,

Mar 21 2010

Article: My Experience with the Windows Marketplace for Mobile

Category: MobileJoel Ivory Johnson @ 03:37

I finally got around to publishing the code for the first version of the SpeedTracker application that made it through certification on the Windows Marketplace for Mobile. The code is of little to no importance though. What I think to be of higher value is the information in my notes on passing certification. You can find my notes and the code on CodeProject.com.

BTW: I felt there would be a number of conflicts with having an application in the Marketplace with a price but giving it away to developers for free. So I decided to make some aesthetic updates to the version that was in the Marketplace and give the older version to developers. Those that paid for the application have access to the updated version.

Tags: , , ,

Mar 14 2010

Speedtracker Updated to v1.2

Category: MobileJoel Ivory Johnson @ 06:17

I made a video on submitting an application to the Windows Marketplace for Mobile a few weeks ago and received notification that it passed certification on Friday. The update is currently available in the US Marketplace. The update will be available in the other English marketplaces in the days to follow. Now that the updated code is out I can share the initial version and am currently writing the article for it. When available you will be able to find it on CodeProject.com

Application Icon in Marketplace

Tags: , ,

Mar 8 2010

I Was in Episode 323 of MSMobiles.com

Category: Mobile | PodcastJoel Ivory Johnson @ 08:51

This past week MSMobiles.com invited me to participate in their podcast (episode 322 ). He wanted a developer's perspective over the next few weeks so I'll also be on the podcast in the forthcoming episodes 323 on March 15 and 324

Tags: , ,

Mar 7 2010

Counting Apps in Other Marketplaces

Category: MobileJoel Ivory Johnson @ 03:53

With the updates to the Windows Marketplace for Mobile one of the new capabilities added was the ability to view applications in other markets. With the new found capability I've seen that some users have tried to switch to the USA marketplace and are led to believe that the USA marketplace has a certain number of applications. The number that the user concludes is always less than the number of applications actually available in the USA marketplace.

Within the developer dashboard a developer can set the prie that customers in other markets see when viewing the application. These prices do not have to be the same after currency conversions, so I could set the price of an item in the USA market to be 1.99 USD for the SA market and free for some other market.

If I don't set the price for the application at all for a market then that Market won't be able to see the applcation. So this is another factor to consider if you are unable to see an application in the Marketplace.

Tags: ,

Mar 4 2010

Confirmed: Windws Phone 7 Series uses Silverlight and XNA

Category: MobileJoel Ivory Johnson @ 14:48

I was reading through the Q&A from @wp7sdev and saw confirmation that Silverlight and XNA are going to be the main development technologies for Windows Phone 7 Series. This information had been leaked by xda-developers.com a few weeks ago but I wanted to wait until I heard word through official channels before really talking about it. WP7S phones will not be backwards compatible with Windows Mobile 6.5 applications at all. It is entirely new.  So what does this mean for me?

I already play with XNA on my Zune and my Xbox and I work with Silverlight on a daily basis for my occupation. So I've already got a background with the technologies. Since it is relevant to Windows Mobile I'll be blogging about it here!  What does this mean for the Windows Mobile 6.x technologies and me?  Microsoft says they will still be investing in those technologies so I'll be blogging about them for as long as Microsoft is supporting them.

I did a few presentations on Silverlight a year and I still have the videos on them. They are actually on this site some where! (though only people at the presentation know the URL. Sorry, my bandwidth on this site is limited). I'llsee about updating them, re-recording them, and getting them uploaded to YouTube.com.

Tags: ,

Mar 3 2010

Submitting and Application to the Windows Marketplace for Mobile

Category: MobileJoel Ivory Johnson @ 12:18

In case you've never seen how to upload an application into the Windows Marketplace for Mobile I shot a video of the process last night and made it available on YouTube. Sorry, YouTube.com only allows me to upload videos up to 10 minutes in size and this was 15 minutes. So I had to upload it as two videos.

Tags: , , ,

Mar 2 2010

Answers for Common Questions in the Smart Device Forums

Category: MobileJoel Ivory Johnson @ 01:45

In what originally struck me as odd Chunsheng Tang of Microsoft posted questions in the MSDN Smart Device forums and then posted the answers to his own questions. He is one of the modorators for the MSDN forums and usually answers questions, but never asks questions. When I took a closer look at the threads it made sense. The questions he was posting are questions that are commonly asked by developers and he was posting reference material for when those questions come up in the future.

It's always nice to have a reference that can be brought up when users post some of these common questions. If you are active in the forums I encourage you to bookmark these threads so that you have quick access to them when users ask these questions.

Tags: ,

Feb 25 2010

Windows Graphic and UI APIs

Category: Mobile | XNAJoel Ivory Johnson @ 06:14

After having another conversation in which I was explaining some of the various graphic APIs available to Windows I ended up pulling some information out of my personal notes to make a list of the most populate Windows graphic APIs and their availability on Windows Phones. I gave the information to some one at MSMobiles.com and he has posted it on his site.

That being said, I think that's the third reference to MSMobiles I've made in the past month or two. As you may guess I am a regular reader of that site and listener of the podcast. I'm not quite sure if I would classify it as a pro Windows or anti-Windows site yet though :-). Calling itself the "Fox News of Microsoft Mobile News" I have to say it's an interesting site and the primary author is talented at wording things in a way to invoke reactions.

Tags: , , ,

Feb 20 2010

How Many Submission Credits do I have Left?

Category: MobileJoel Ivory Johnson @ 02:40

Currently in the Marketplace developer's portal there's no way to check and see how many submissions you have left. You see a count when submitting a submission but no where else. Mike Liu posted a suggestion on how to find out how many submissions you have left.

Hi All,

To check how many credits you have, you may create a dummy entry and enter sufficient data so it is in "Ready for certification".

Click "Submit for certification", check the count on the confirmation page, and cancel.

Though not ideal, it's a handy workaround I use myself.


Regards,


Mike, Microsoft

Tags: , ,

Feb 19 2010

Windows Phone Deployment Patterns Part 1 of n

Category: MobileJoel Ivory Johnson @ 15:47

One of the readers of this site contacted me via e-mail having read the first post in this series.  He wanted to know how to get one of the sharp looking icons in the start menu that you may have seen in Windows Mobile 6.5. We sent a few e-mails back and forth, identified a few obstacles, but got the icon on the start menu. The icons in the Windows Mobile 6.5 start menu are PNG files. You'll have to make a registry entry for your custom PNG icon to show up.  The registry location use is one that may be protected on devices with certain security settings. To ensure that an installation with a custom icon properly occurs the CAB will need to be signed. If you are distributing through the WindowsMarketplace for Mobile this will be done for you. Once security requirements are ment your CAB should have no problem registering the PNG. I'll cover two things in this post. (1) lowering the security requirements on your development device and (2) creating a deployment that will register the icon

Lowering the Security Requirements of your Development Device

There are two ways to lower/view the security settings on your device that I'll cover. One is using the Visual Studio Device Security Manager (Tools->Device Security Manager). If you are using a physical device connect it to your computer before you perform these steps. Once you start the Device Security Manager click on "Connect to Device" in it to select either the physical device connected to your computer or one of the emulators. After the the security tool connects select the "Security Off" profile and then click on "Deploy to Device" (I would love to discuss the meanings of the different profiles here but that strays to far from the set goal of this post).

The procedures for doing this with the Security Powertoy are pretty much the same. The one difference to note is that if you are running a 64-bit machine you'll find the Power Toy to be unusable unless you use the coreflags.exe tool.

What Needs to Occur for the Icon to Show?

By default Windows Mobile 6.5 will use your applications icon in the Windows Mobile 6.5 start menu. To use the PNG a registry entry needs to be made to associate your application's shortcut with the PNG file. The registry key must be created in [HKLM\Security\Shell\StartInfo\Start\MyShortCutName.lnk] where "MyShortCutName.lnk" is the name of the short cut icon for your application. You will need to create a new string key in this location named "Icon" that is set to the path to your PNG icon.

What do you need to do to make all of this happen? Start off with creating a deployment project as I described in part 0 of this series. In addition to the project output (executable) that you add to the deployment also add the PNG file for the icon you want to use. Right-click on the deployment project and select View->Registry to open the registry editor. The registry editor will show a series of folders representing the registry entries. Right-click on the HKEY_LOCAL_MACHINE folder and select "New Key." When prompted for the name of the key enter "Security". Continue to do this until you've created the full set of keys I've described above. After you create your "MyShortcutIcon.lnk" key you will need to create the string entry for it. Select your MyShortcutIconKey and then right-click in the pane to the right of the registry entried. Select New->String Value. Enter "Icon" for the name of the entry and "%InstallDir%\MyPngFileName.png" for the value (where MyPngFileName.png is the name of your PNG file).

If you compile your application and build your deployment you will have an installation that may or may not cause your custom icon to display. This is because of a race condition. The shortcut for the application is created before the registry entry is created. If the Sheel process happens to see the shortcut befor the registry entry is made then it will cache the shortcut icon instead of the PNG icon. If this happens your custom PNG icon will not show up until after the device resets. To avoid this problem you need to ensure that the registry entry is made before the shortcut icon is made. Unfortunatly there is no built-in support in Visual Studio to control the order of actions but all is not lost. To get around this problem I used a solution from Mike J. Francis. The solution that he provides consist of making an XML file that contains a set of install actions to create the shortcut icon instead of having the shortcut.lnk deployed through the file system editor.

 

Tags: , ,

Feb 19 2010

Windows Marketplace for Mobile Changes

Category: Joel Ivory Johnson @ 02:30

The changes that Microsoft promised for the Windows Marketplace for Mobile now show through. If you look in the lower right hand corner of the Marketplace Web Site you should now be able to select different markets to look at.

World View Setting

If you go to the developer's Windows Phone site you'll also see differences there. The Race to the Market ad is gone and the site is a completly new theme (the theme kind of reminds me of AT&T).

Developer's portal

I imagine the changes are still being applied. When I log in to manage applications I can sometimes see my applications, other times I cannot. I also noted that I can deauthorize all devices from my account; a welcomed addition. If you had registered 5 before (which is not uncommon for development) previously there was no way you could ever gt another phone registered. I understand there is a new client for the phones too. Though at this point I have not been able to get the update.

Tags: , ,

Feb 16 2010

Changes to the Marketplace, New DTK

Category: MobileJoel Ivory Johnson @ 11:05

Earlier today the Windows Mobile Development team announced some changes to the Marketplace and the availability of the 6.5.3

Customer Improvements

  • World View - User's will be able to view applications available in markets other than their home market
  • Installation onto Storage card
  • Better Application Discovery
  • Opening Store in Russia - ISVs and customers in Russia will be able to participate in the Marketplace

Developer Improvements

  • Developer Experience Improvements - No longer do you have to pay 10 USD/market to make your app available in other markets
  • Application Policy Changes - VoIP applications now allowed accept where prohibited by carrier
  • Improvements to registration and submission process - Microsoft's fixed a lot of the problems/annoyances that ISVs and developers have complained about

All of these changes are not in place yet, but they are coming. Until then download the Windows Mobile 6.5.3 DTK. It contains a Visual Studio template for widgets, a Bing Maps control, and other new additions.

Tags: ,