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.
int _tmain(int argc, _TCHAR* argv)
logEntry.cbSize = sizeof(CALLLOGENTRY);
//The logEntry structure is populated with call data.
//do something with it here.
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!
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.
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.
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
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
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.
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.
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.
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.