So erkennen Sie in Echtzeit die Zunahme / Abnahme der zellulären Signalstärke in iOS

8

Meine App (es ist eine App Store App) ist in der Lage, über 3G / 4G / LTE / Edge usw. zu verbinden ... aber es kann nicht in Echtzeit (über einen Rückruf vielleicht) erkennen, dass die Stärke des Signals geändert wurde . Zum Beispiel: Wenn ich mit 4G verbunden bin und ich bin in der "Ecke", wo das Signal EDGE oder 2G ist, möchte ich einige Funktionalität deaktivieren. Auch ich möchte die Funktionalität wieder aktivieren mit dem Signal wird wieder 4G.

Ich habe die Klasse CTTelephonyNetworkInfo gesehen und auch diese Werte werden im SDK angeboten

%Vor%

Aber wie kann die App eine Benachrichtigung erhalten, wenn einer dieser Werte aktiv ist? Ich habe einen Code, der von der CTTelephoneNetworkInfo liest und die Werte, die ich zurücknehme, sind korrekt, jedoch geschieht dies, wenn ich die Methoden manuell aufrufen.

    
cateof 07.04.2016, 15:44
quelle

1 Antwort

5

Um die zellulare Signalstärke zu erkennen, verwende ich CTRadioAccessTechnologyDidChangeNotification .

Sie können diesen Code ausprobieren:

%Vor%

Ich habe es auf meinem iPhone getestet, indem ich den Flugzeugmodus ein- und ausgeschaltet habe, und mir ist aufgefallen, dass ich manchmal ein bisschen mehr Zeit auf die Benachrichtigung warten muss. Vielleicht wird der bessere Weg in Ihrem Fall nur info.currentRadioAccessTechnology heißen und das Ergebnis erhalten, wenn Sie es brauchen. Vergessen Sie natürlich nicht, den Beobachter zu entfernen, wenn Sie ihn nicht mehr brauchen.

Apple Dokumentation dazu:

  

currentRadioAccessTechnology   Diskussion:   Die aktuelle Funkzugangstechnologie, mit der das Gerät registriert ist. Kann NULL sein, wenn das Gerät in keinem Netzwerk registriert ist.

Außerdem habe ich etwas recherchiert und eine interessante Antwort gefunden, die Ihnen helfen könnte.

Einfache Obj-C-Version:

%Vor%     
kamwysoc 13.04.2016, 17:29
quelle

Tags und Links