Android examples for Network:Network Operation
set Network On
//package com.java2s; import java.lang.reflect.Method; import android.content.Context; import android.content.Intent; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.telephony.TelephonyManager; import android.util.Log; public class Main { private static final String DISABLE_DATA_CONNECTION_METHOD = "disableDataConnectivity"; private static final String ENABLE_DATA_CONNECTION_METHOD = "enableDataConnectivity"; private static final String I_TELEPHONY_METHOD = "getITelephony"; private static final String TAG = "NetworkSwitcher"; /**//from w ww. j a v a2s .co m * @param context * - Context * @return true if Network switched on successfully * @throws SettingNotFoundException */ public static boolean setNetworkOn(Context context) throws SettingNotFoundException { boolean isEnabled = false; if (isNetworkOn(context)) { return true; } isEnabled = changeNetworkState(context, ENABLE_DATA_CONNECTION_METHOD); return isEnabled; } /** * @param context * - Context * @return true if it is mobile network connection */ public static boolean isNetworkOn(Context context) { TelephonyManager telephonyManager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); return telephonyManager.getDataState() == TelephonyManager.DATA_CONNECTED ? true : false; } private static boolean changeNetworkState(Context context, String method) throws SettingNotFoundException { TelephonyManager telephonyManager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); try { Method dataConnSwitchmethod = null; Class<?> telephonyManagerClass; Object ITelephonyStub; Class<?> ITelephonyClass; telephonyManagerClass = Class.forName(telephonyManager .getClass().getName()); Method getITelephonyMethod = telephonyManagerClass .getDeclaredMethod(I_TELEPHONY_METHOD); getITelephonyMethod.setAccessible(true); ITelephonyStub = getITelephonyMethod.invoke(telephonyManager); ITelephonyClass = Class.forName(ITelephonyStub.getClass() .getName()); Log.i(TAG, "changeNetworkState(): " + "ITelephonyStub = " + ITelephonyStub.toString()); dataConnSwitchmethod = ITelephonyClass .getDeclaredMethod(method); Log.i(TAG, "changeNetworkState(): " + "ITelephonyClass = " + ITelephonyClass.getName()); Log.i(TAG, "changeNetworkState(): " + "dataConnSwitchmethod = " + dataConnSwitchmethod.getName()); dataConnSwitchmethod.setAccessible(true); dataConnSwitchmethod.invoke(ITelephonyStub); Thread.sleep(5000); } catch (Exception e) { Log.i(TAG, "changeNetworkState(): Exception: " + e); if (method == DISABLE_DATA_CONNECTION_METHOD) { setAirplaneModeOn(context); } } return telephonyManager.getDataState() == TelephonyManager.DATA_CONNECTED; } /** * * @param context * @return true if AirplaneMode is switched successfully * @throws SettingNotFoundException */ public static boolean setAirplaneModeOn(Context context) throws SettingNotFoundException { if (isAirplaneModeOn(context)) { return true; } boolean success = Settings.System.putInt( context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 1); if (!success) { return false; } Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.putExtra("state", true); context.sendOrderedBroadcast(intent, null); try { Thread.sleep(5000); } catch (InterruptedException e) { } return success; } /** * @param context * @return true if Airplane mode is on * @throws SettingNotFoundException */ public static boolean isAirplaneModeOn(Context context) throws SettingNotFoundException { int value = Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON); return value == 0 ? false : true; } }