16
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

CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

Embed Size (px)

DESCRIPTION

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 :-)

Citation preview

Page 1: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

Holger WendelSenior Consultant – Multitouch Development

Neonred Group GmbH

Gordon BreuerSenior IT Consultant / Software Engineermsg systems ag

Windows Phone

CSI: WPDem Windows Phone auf der SpurGDR2-Internetspecial:

Data Sense

Page 2: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

Demo Quick-Facts

Referenz Code-Beispiel

Data Sense

Page 3: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

Demo

Data Sense

Page 4: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

Data Sense

Page 5: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

Quick-Facts

Data Sense

Page 6: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

Data Sense

• Data Sense ist eine System-App

• Protokolliert den verbrauchten Trafficaller Apps und Systemkomponentenauf Windows Phone

• Unterscheidung zwischen Traffic überW-LAN und Mobilfunk-Anbindung

• Warnt bei Erreichen eines eingestelltenDatenlimits und schaltet auf WunschFeatures mit Onlineanbindung ab

Page 7: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

Data Sense

Data Sense kann für die serverseitigeKomprimierung des anfallendenDatentraffics verwendet werden

Die Verwendung innerhalb desInternet Explorers muss explizit in denerweiterten Einstellungen aktiviert werden

Diese Funktion muss vom eigenenProvider unterstützt werden Derzeit bietet keiner der drei großen Provider

in Deutschland das Feature an

T-Mobile arbeitet nach eigener Aussage daran

Page 8: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

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

Page 9: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

Referenz

Data Sense

Page 10: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

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 truegesetzt werden

Optional: Vor dem Starten eines Vorgangs der einen (potentiell) hohen Datenverbrauch hat

Page 11: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

Data Sense

NetworkInformation GetInternetConnectionProfile() ConnectionProfile

NetworkAdapterIanaInterfaceType

Internet AssignedNamesAuthority 71 = Wi-Fi

6 = Ethernet

ConnectionCost

NetworkCostType

GetConnectionCost()Unknown

Unrestricted

Fixed

Variable

1. Check2. bei mobiler

Verbindung

ApproachingDataLimit

OverDataLimit

Roaming

1. Check

2. Wenn nichtunbeschränkt

Page 12: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

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!

Page 13: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

Code-Beispiel

Data Sense

Page 14: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

Data Sense//Global

bool m_bDoNotSendData = false;

bool m_bSendLowResolutionImage = false;

private const int IANA_INTERFACE_TYPE_WIFI = 71;

NetworkStatusChangedEventHandler networkStatusCallback;

//Constructor

networkStatusCallback = newNetworkStatusChangedEventHandler(OnNetworkStatusChange);

UpdateNetworkInformation();

//Event Handler

private async void OnNetworkStatusChange(object sender) {

UpdateNetworkInformation();

}

Page 15: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

Data Sense//Method UpdateNetworkInformation

private void UpdateNetworkInformation() {

ConnectionProfile internetConnectionProfile = Windows.Networking.Connectivity.NetworkInformation.GetInternetConnectionProfile();

if (internetConnectionProfile.NetworkAdapter.IanaInterfaceType != IANA_INTERFACE_TYPE_WIFI) {

if (internetConnectionProfile.GetConnectionCost().Roaming) {

m_bDoNotSendData = true;

}

if (internetConnectionProfile.GetConnectionCost().ApproachingDataLimit) {

m_bSendLowResolutionImage = true;

}

if (internetConnectionProfile.GetConnectionCost().OverDataLimit) {

m_bDoNotSendData = true;

}

} else {

m_bDoNotSendData = false;

m_bSendLowResolutionImage = false;

}

}

Page 16: CSI: WP - Dem Windows Phone auf der Spur, GDR2-Internetspecial: Data Sense

Afterglow

Holger WendelGordon Breuer

Vielen Dank!

Alle Informationen und Termine der Roadshow unter csi-wp.de und auf facebook.com/csiwp