Netwerkverbindung überwachen

  • Antworten:0
Michael
  • Forum-Beiträge: 19

27.06.2012, 09:56:44 via Website

Hi zusammen,

ich würde gerne eine kleine App schreiben, die mir meine Netzwerkverbindungen protokolliert. D.h. Sobald ein Wechsel z.B. von UMTS nach HSDPA oder nach EDGE usw. geschieht, soll dies protokolliert werden.

Dazu habe ich im Netz schon das ein oder andere Beispiel oder Tutorial gefunden und ausprobiert.
Meine Methode sieht bisher so aus.

Das Problem ist nur das der BroadcastReceiver nur beim Start meiner App angesprochen wird, sobald ein Netzwechsel passiert, bleibt er ruhig.

1public void onCreate(Bundle savedInstanceState) {
2 super.onCreate(savedInstanceState);
3 setContentView(R.layout.main);
4 mContext = this;
5 mNetworkStateChangedFilter = new IntentFilter();
6 mNetworkStateChangedFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
7
8 mNetworkStateIntentReceiver = new BroadcastReceiver() {
9 @Override
10 public void onReceive(Context context, Intent intent) {
11 if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
12 NetworkInfo info = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
13 mTypeName = info.getTypeName();
14 mSubtypeName = info.getSubtypeName();
15 mAvailable = info.isAvailable();
16 Log.i(LOGTAG, "Network Type: " + mTypeName
17 + ", subtype: " + mSubtypeName
18 + ", available: " + mAvailable);
19 updateScreen();
20 }
21 }
22 };
23 setContentView(R.layout.main);
24
25
26 }
27
28 @Override
29 protected void onResume() {
30 Log.d(LOGTAG, "onResume");
31 super.onResume();
32 if(mNetworkStateIntentReceiver!=null){
33 registerReceiver(mNetworkStateIntentReceiver, mNetworkStateChangedFilter);
34 unregisterReceiver(mNetworkStateIntentReceiver);
35 registerReceiver(mNetworkStateIntentReceiver, mNetworkStateChangedFilter);
36 }
37 }

Was muss ich tun, das mein BroadcastReceiver bei jedem Wechsel aktiv wird ?

Danke für eure Hilfe und Grüße

Spike

— geändert am 27.06.2012, 10:02:31

Antworten