Datasense, as far as I understand it;
It came to my HTC 8x with GDR2. It was enabled by my then provider Simyo (Netherlands), so the app appeared (no hard reset or anything like that required).
Then I switched to Vodafone (who don't support Data Sense). The app was still visible but the data wasn't updated anymore (since Vodafone don't support it).
After hard reset the app disappeared (probably since Vodafone don't support it).
From what I've learned how it works (and why there are so many inconsistencies).
- The carrier/providers needs to support DataSense. The support includes logging data usage in a form that can be utillized by the app. If the carrier does provide this data, it might not be compliant with DataSense. In the latter case the carrier does not support DataSense.
- The app needs to be "enabled" This is a switch that is triggered by the data carrier. I do not know whether there is an actual switch sent, or Microsoft using a white list etc.
- In some cases the app doesn't just appear once there is support for it. From what I've heard and experienced myself, after an update (in my case GDR2) the phone "reconfigures" this is the moment the app gets activated. This can also be achieved by performing a hard reset.
- In some cases the app might appear after a hard reset (maybe because no sim is present or maybe a false switch is triggered). The app will show incorrect data or is not updated. This is since it is not supported by the provider.
So DataSense is most definately dependant on the carrier. The data actually showed on the device is not just logged by the device itself, but also verfied or updated by the carrier.
I.e. when I installed GDR2 I was already half-way through my data plan. Right after the update DataSense was able to show me ALL data used that month. Also by apps I had removed before I installed GDR2. Someone might be able to confirm this by hard-resetting their phones halfway through their data plan. (also when I reinstalled the apps, it showed historic data with the newly installed app, instead of "uninstalled app").
I am led to believe that the carrier tracks data usage and link the data usage to a specific app ID. This data is then transmitted back to the phone, allowing the phone to display data usage per application. The carrier link is a choice by Microsoft, since android devices are able to show data usage without carrier support. I believe Microsoft made this choice to accurately show usage, by using carrier data, to prevent the DataSense and carrier bill to contain conflicting information.
There might also be a possibility that the device is capable of logging all this data itself, but requires consent from the carrier for legal reasons (which is less likely since the app was able to show data usage from before it was activated(PRE-GDR2 usage)).
In theory this covers all cases;
Some users having acces to the app after a hard-reset
Some users not having acces although the carrier supports it (but app is not working).
Some users having acces but the app not working.
Sorry for the long story, but I hope this helps you guys understand DataSense a little better.