Anlässlich des gestarteten Rollouts des GDR2-Updates für Windows Phone, stellen wir euch einen Auszug aus unserem Themen-Katalog als Internetspecial zur Verfügung!
Alles rund um Data Sense und die APIs, die ihr als Entwickler damit nutzen könnt, findet ihr hier zum Ansehen, Herunterladen und Weitergeben in unserem GDR2-Internetspecial :-)
CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense
1. Holger Wendel
Senior Consultant – Multitouch Development
Neonred Group GmbH
Gordon Breuer
Senior IT Consultant / Software Engineer
msg systems ag
Windows Phone
CSI: WP
Dem Windows Phone auf der Spur
GDR2-Internetspecial:
Data Sense
6. Data Sense
• Data Sense ist eine System-App
• Protokolliert den verbrauchten Traffic
aller Apps und Systemkomponenten
auf Windows Phone
• Unterscheidung zwischen Traffic über
W-LAN und Mobilfunk-Anbindung
• Warnt bei Erreichen eines eingestellten
Datenlimits und schaltet auf Wunsch
Features mit Onlineanbindung ab
7. Data Sense
Data Sense kann für die serverseitige
Komprimierung des anfallenden
Datentraffics verwendet werden
Die Verwendung innerhalb des
Internet Explorers muss explizit in den
erweiterten Einstellungen aktiviert werden
Diese Funktion muss vom eigenen
Provider unterstützt werden
Derzeit bietet keiner der drei großen Provider
in Deutschland das Feature an
T-Mobile arbeitet nach eigener Aussage daran
8. Data Sense
• Die Installation der Data Sense-App ist für den Hersteller / Provider
optional, auch mit dem GDR2-Update!
• Ohne die App kann der Benutzer kein Datenlimit hinterlegen,
allerdings kann die nachfolgend beschriebene API von Entwicklern
dennoch verwendet werden um zwischen einer bestehenden Wi-Fi
und einer Mobilfunk-Verbindung zu unterscheiden, und ob der
Benutzer sich im Ausland befindet oder nicht (Roaming)
• Ist die Data Sense-App installiert kann man über die API außerdem
abfragen, ob man das hinterlegte Limit fast erreicht (<10%
verbleibend) oder auch bereits überschritten hat
10. Data Sense
Erforderliche Capability in der WMAppManifest.xml
ID_CAP_NETWORKING
Wann sollte das Datenlimit des Benutzers überprüft werden?
Launching Event
Starten der App
Activated Event
Reaktivierung nach Deaktivierung oder Tombstoning
NetworkInformation.NetworkStatusChanged Event
Wechsel der Verbindung zwischen Wi-Fi und Mobilfunk
Beim Eintreten oder Verlassen einer Roaming-Zone
Wenn die Eigenschaften ApproachingDataLimit oder OverDataLimit auf true
gesetzt werden
Optional: Vor dem Starten eines Vorgangs der einen (potentiell) hohen
Datenverbrauch hat
11. Data Sense
NetworkInformation GetInternetConnectionProfile() ConnectionProfile
NetworkAdapterIanaInterfaceType
Internet
Assigned
Names
Authority71 = Wi-Fi
6 = Ethernet
ConnectionCost
NetworkCostType
GetConnectionCost()Unknown
Unrestricted
Fixed
Variable
1. Check
2. bei mobiler
Verbindung
ApproachingDataLimit
OverDataLimit
Roaming
1. Check
2. Wenn nicht
unbeschränkt
12. Data Sense
Zunächst sollte man überprüfen, ob der Benutzer derzeit eine
Wi-Fi Verbindung verwendet (IanaInterfaceType ist 71) oder aber eine
Mobilfunk-Verbindung
Im zweiten Fall kann – sofern die Data Sense App installiert ist – die Art der mobilen
Datenverbindung abgefragt werden:
Unrestricted – Der Datenverbrauch muss, analog zu Wi-Fi, nicht eingeschränkt oder
überwacht werden
Fixed – Der Benutzer hat ein einmaliges Daten-Kontingent hinterlegt
Variable – Der Benutzer hat ein monatliches Frei-Kontingent hinterlegt
Unknown – Data Sense wurde vom Benutzer nicht konfiguriert oder die App steht nicht zur
Verfügung
Ist die Datenverbindung Fixed oder Variable so kann man
ApproachingDataLimit und OverDataLimit abfragen; ist eine der beiden
true, sollte man den Nutzer vor dem Verwenden der Datenverbindung um Erlaubnis
fragen und ihn auf das Limit hinweisen!
Beim Typ Unknown sind beide Eigenschaften immer false, eine eigene Logik ist anzuraten
bei großen zu übertragenden Datenmengen (bsp. User um Erlaubnis fragen)
Ist die Eigenschaft Roaming auf true sollte der Benutzer auf jeden Fall gefragt
werden, ob die Datenverbindung im Ausland verwendet werden soll!
Wird auch korrekt gesetzt, wenn der Verbindungstyp Unknown ist
Die hier vorgestellte API kann nicht mit dem Simulation Dashboard getestet werden!