Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Verbindungsdaten/-informationen einer Mobilfunkverbindung abfragen
mar.k
myCSharp.de - Member



Dabei seit:
Beiträge: 4

Themenstarter:

Verbindungsdaten/-informationen einer Mobilfunkverbindung abfragen

beantworten | zitieren | melden

Hallo zusammen,

ich soll eine bereits bestehende C#-Anwendung anpassen und um neue Funktionen ergänzen. Unter anderem soll auch eine autom. Synchronisierung der Daten der Anwendung erfolgen.
Die C#-Anwendung soll auf einem Tablet mit Windows 8.1 (Vollversion von Windows 8.1, keine abgespeckte RM-Variante) lauffähig sein. Das Tablet hat ein eingebautes WWAN-Modul, um sich unterwegs mit dem Internet über das Mobilfunknetzwerk zu verbinden.

Der größte Teil der Anpassung ist erledigt, es geht hier jetzt nur um die Synchronisierung besser gesagt, um die Feststellung, ob die Synchronisierung zu einem bestimmten Zeitpunkt machbar ist. (Wenn zum Beispiel nur eine langsame Verbindung zu Verfügung steht, sollte keine Synchronisierung stattfinden und diese verschoben werden, da die Sync dann zulange dauern würde.)

Um das herauszufinden, bräuchte ich grundlegende Informationen zu der Netzwerkverbindung (Mobilfunknetz), die mir Windows zwar anzeigen kann, aber ich bräuchte diese Informationen innerhalb meiner Anwendung.
Konkret geht es um den Netzwerktyp, also mit welchem der verschiedenen Mobilfunknetzwerke das Tablet verbunden ist (GSM, EDGE, UMTS oder HDSPA), um hier grob abschätzen zu können, ob eine Sync gerade machbar ist. Die Signalstäre würde ich als zweiten Faktor mit einbeziehen.

Beispiel: Wenn nur eine GSM- oder EDGE-Verbindung zu Verfügung steht, ist die Sync nicht machbar bzw. nicht sinnvoll, dagegen bei einer UMTS- oder HDSPA-Verbindung schon.

Windows listet diese Infos in der Netzwerkübersicht. (siehe Screenshot)
Nur wie frage ich diese Daten in der C#-Anwendung ab, gibt es passende DotNET-Klassen, die diese Infos liefern können Oder hat Windows-8 eine passende API. Das sind doch eigentl. grundlegende Informationen, die m.M. nach mehrere Anwendungen und Apps abfragen (müssten) und deswegen geläufig sein müssten (gerade die Mobile Apps für Windows Phone)

mfG
mar.k
Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von mar.k am .
Attachments
private Nachricht | Beiträge des Benutzers
jaensen
myCSharp.de - Experte

Avatar #avatar-2657.png


Dabei seit:
Beiträge: 2.760
Herkunft: München

beantworten | zitieren | melden

Servus!

Sollte über WMI machbar sein: WMI Get network interface configuration
private Nachricht | Beiträge des Benutzers
mar.k
myCSharp.de - Member



Dabei seit:
Beiträge: 4

Themenstarter:

beantworten | zitieren | melden

Danke für Deine Antwort.
Ich habe den Link zur WMI-Klasse angesehen, konnte dort aber nicht das passende Feld finden. Durch ein WMI-Tool (WMI Explorer) habe ich mir noch mehr Klassen angesehen.
Die Klasse MSNdis_80211_ReceivedSignalStrength kann zwar die Signalstärke anzeigen, aber nur von WLAN-Adaptern, nicht vom UMTS-/3G-Adapter.
Gibt es den keine Möglichkeit diese Daten (Signalstärke/Netzwerktyp) einfach abzufragen, schließlich zeigt mir Windows die Daten ja auch an.

(Sorry für meine verspätete Antwort.)
private Nachricht | Beiträge des Benutzers
Palin
myCSharp.de - Member



Dabei seit:
Beiträge: 1.090

beantworten | zitieren | melden

MSDN:Get signal strength in C#?
Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern
private Nachricht | Beiträge des Benutzers
mar.k
myCSharp.de - Member



Dabei seit:
Beiträge: 4

Themenstarter:

beantworten | zitieren | melden

In dem MSDN-Artikel wird die Klasse MSNdis_80211_ReceivedSignalStrength
genutzt. Wie ich oben schon geschrieben habe, funktioniert die Klasse nur für WLAN/WiFi-Verbindungen.
Bei aktiver UMTS-Verbindung und ausgeschaltetem WLAN-Adapter wird von dieser Klasse kein Wert zurückgegeben.
Dieser Beitrag wurde 5 mal editiert, zum letzten Mal von mar.k am .
private Nachricht | Beiträge des Benutzers
mar.k
myCSharp.de - Member



Dabei seit:
Beiträge: 4

Themenstarter:

beantworten | zitieren | melden

gibt's keine weiteren Ideen?

Leider kenne ich mich mit WMI nicht sonderlich gut aus, habe mir aber beide Links angesehen und alle WMI-Properties abgefragt.
Die "MSNdis_80211_ReceivedSignalStrength" zeigt mir definitiv nur für WLAN-Verbindungen einen Wert an, bei Mobilfunkverbindung nicht.

Die Zahl 80211 im Property-Namen deutet vermutlich auf den IEEE-Standard (IEEE_802.11) hin.
Laut Wikipedia ist IEEE_802.11 eine andere Bezeichnung für WLAN.
IEEE 802.11

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von mar.k am .
private Nachricht | Beiträge des Benutzers
jaensen
myCSharp.de - Experte

Avatar #avatar-2657.png


Dabei seit:
Beiträge: 2.760
Herkunft: München

beantworten | zitieren | melden

Hallo mar.k,

habe noch ein bisschen gewühlt und folgendes "Cheat-Sheet" gefunden welches Dich weiterbringen sollte: How to write managed code that uses the mobile broadband API.

Hier die API-Übersicht: Mobile Broadband API Interfaces

Im Speziellen für die Signalstärke: IMbnSignal interface

Dazu gibts hier auch noch direkt ein Snippet: Snippet: Get signal strength

Ich denke das sollte Dich erstmal weiter bringen. Scheint wohl auch alles ohne WMI zu gehen (bzw. gar nicht mit der WMI..) Wollte Dich nicht auf die falsche Fährte bringen, bislang konnte ich immer alle Net-Infos aus der WMI bekommen, die Zeiten scheinen sich zu ändern...

Gruß,
jaensen
private Nachricht | Beiträge des Benutzers