android開關gprs流量
一、需要權限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
二、下面代碼實現功能、如果gprs已經打開則先關閉再打開、否則直接打開、
package com.example.gprstoggle;import java.lang.reflect.Method; import android.app.Activity; import android.content.Context; import android.net.ConnectivityManager; import android.os.Bundle; public class MainActivity extends Activity { private ConnectivityManager mCM; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private void init() { mCM = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); gprsSetter(); finish(); } //打開或關閉GPRS private boolean gprsEnabled(boolean bEnable) { Object[] argObjects = null; boolean isOpen = this.gprsIsOpenMethod("getMobileDataEnabled"); if(isOpen == !bEnable) { setGprsEnabled("setMobileDataEnabled", bEnable); } return isOpen; } //打開或關閉GPRS private boolean gprsSetter() { Object[] argObjects = null; boolean isOpen = this.gprsIsOpenMethod("getMobileDataEnabled"); if(isOpen) { setGprsEnabled("setMobileDataEnabled", false); System.out.println("關閉"); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } setGprsEnabled("setMobileDataEnabled", true); System.out.println("開啟"); }else{ setGprsEnabled("setMobileDataEnabled", true); System.out.println("開啟"); } return isOpen; } //檢測GPRS是否打開 private boolean gprsIsOpenMethod(String methodName) { Class cmClass = mCM.getClass(); Class[] argClasses = null; Object[] argObject = null; Boolean isOpen = false; try { Method method = cmClass.getMethod(methodName, argClasses); isOpen = (Boolean) method.invoke(mCM, argObject); } catch (Exception e) { e.printStackTrace(); } return isOpen; } //開啟/關閉GPRS private void setGprsEnabled(String methodName, boolean isEnable) { Class cmClass = mCM.getClass(); Class[] argClasses = new Class[1]; argClasses[0] = boolean.class; try { Method method = cmClass.getMethod(methodName, argClasses); method.invoke(mCM, isEnable); } catch (Exception e) { e.printStackTrace(); } } } </pre>
本文由用戶 m45y 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!