本篇內(nèi)容介紹了“Android怎么實現(xiàn)WIFI和GPRS網(wǎng)絡的切換”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,東方企業(yè)網(wǎng)站建設,東方品牌網(wǎng)站建設,網(wǎng)站定制,東方網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,東方網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。在項目的開發(fā)中因為要使用到WIFI和GPRS網(wǎng)絡的切換,因此就研究了一下通過代碼打開WIFI和GPRS的工作。
無論是切換WIFI還是切換GPRS網(wǎng)絡都需要設置相應的權限,所以需要在AndroidManifest.xml文件中加入以下幾行代碼。
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
1、切換WIFI網(wǎng)絡
public static void toggleWiFi(Context context, boolean enabled) { WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); wm.setWifiEnabled(enabled); }
2、切換GPRS網(wǎng)絡
由于Android沒有提供直接切換GPRS網(wǎng)絡的方法,通過查看系統(tǒng)源碼發(fā)現(xiàn),系統(tǒng)是調用IConnectivityManager類中的setMobileDataEnabled(boolean)方法來設置GPRS網(wǎng)絡的,由于方法不可見,只能采用反射來調用,代碼如下。
public static void toggleMobileData(Context context, boolean enabled) { ConnectivityManager conMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); Class<?> conMgrClass = null; // ConnectivityManager類 Field conMgrField = null; // ConnectivityManager類中的字段 Object iConMgr = null; // IConnectivityManager類的引用 Class<?> iConMgrClass = null; // IConnectivityManager類 Method setMobileDataEnabledMethod = null; // setMobileDataEnabled方法 try { // 取得ConnectivityManager類 conMgrClass = Class.forName(conMgr.getClass().getName()); // 取得ConnectivityManager類中的對象mService conMgrField = conMgrClass.getDeclaredField("mService"); // 設置mService可訪問 conMgrField.setAccessible(true); // 取得mService的實例化類IConnectivityManager iConMgr = conMgrField.get(conMgr); // 取得IConnectivityManager類 iConMgrClass = Class.forName(iConMgr.getClass().getName()); // 取得IConnectivityManager類中的setMobileDataEnabled(boolean)方法 setMobileDataEnabledMethod = iConMgrClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE); // 設置setMobileDataEnabled方法可訪問 setMobileDataEnabledMethod.setAccessible(true); // 調用setMobileDataEnabled方法 setMobileDataEnabledMethod.invoke(iConMgr, enabled); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } }
根據(jù)以上所寫就可以做到WIFI網(wǎng)絡和GPRS網(wǎng)絡的切換了。
“Android怎么實現(xiàn)WIFI和GPRS網(wǎng)絡的切換”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質量的實用文章!
網(wǎng)站名稱:Android怎么實現(xiàn)WIFI和GPRS網(wǎng)絡的切換-創(chuàng)新互聯(lián)
分享URL:http://jinyejixie.com/article2/dchooc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站導航、網(wǎng)站內(nèi)鏈、用戶體驗、品牌網(wǎng)站建設、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)