2012-09-01 25 views
0

我需要檢測用戶何時移動到3G網絡或2G網絡或處於無服務區域。有沒有一個標準的Android廣播意圖呢?移動網絡變化的廣播意圖

當前即時輪詢下面的代碼服務中的每一分鐘。

TelephonyManager tm =(TelephonyManager) getSystemService(TELEPHONY_SERVICE); 如果(tm.getNetworkType()== TelephonyManager.NETWORK_TYPE_EDGE){}

但是,這不是一個正確的方式,並可以bttery餓了。如果只有聽衆或brodcast意圖觸發它會更好。

回答

0

你需要註冊意向ConnectivityManager.CONNECTIVITY_ACTION在OnRecieve你可以這樣做。

if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) { 
    NetworkInfo info = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO); 
    String typeName = info.getTypeName(); 
} 

編輯: 您需要使用意圖過濾器標籤 「android.net.conn.CONNECTIVITY_CHANGE」實際的字符串。此外,請檢查這doc

+0

你的意思是,我必須在清單中放置'ConnectivityManager.CONNECTIVITY_ACTION'? – arnab321

+0

是的在意圖過濾器 – nandeesh

+0

你的意思是,像這樣? ''? 雖然沒有工作。另外,這裏沒有文檔 – arnab321