2011-11-30 52 views
0

我只是Java中的初學者,爲我的android手機搞清楚這個應用程序。獲取「移動網絡」的狀態,WiFi掉落後自動連接3g的狀態

我在找的是在wifi打開時獲取移動網絡自動連接狀態。

我已經檢查wifi是否啓用,並且我可以檢查3G是否打開,但3g被禁用,因爲WiFi是連接的「主」並且接管/禁用3G。 我的應用程序有可能關閉wifi。但關閉wifi後,3g出現。如果在設備中設置了自動連接到3g或者其他什麼,我需要該狀態。之後,我想關閉3G連接,但這將是下一章。狀態可以在設置無線和網絡 - >移動網絡[複選框]

在這裏和谷歌搜索了很多,但沒有運氣。也許在這裏問...

更新: 現在看着系統偏好。查明狀態是否存儲在那裏。

回答

1

發現上述問題的解決方案:

public Boolean isMobileDataEnabled(){ 
    Object connectivityService = getSystemService(CONNECTIVITY_SERVICE); 
    ConnectivityManager cm = (ConnectivityManager) connectivityService; 

    try { 
     Class<?> c = Class.forName(cm.getClass().getName()); 
     Method m = c.getDeclaredMethod("getMobileDataEnabled"); 
     m.setAccessible(true); 
     return (Boolean)m.invoke(cm); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     return null; 
    } 
} 
+0

謝謝,解決我的問題。這是正確的方法oppsite「setMobileDataEnabled」。 – herbertD