private TextView mTextView = null;
private Button mOpenMoblieNet = null;
private boolean isEnabled = false;
Method dataConnSwitchmethod;
Class telephonyManagerClass;
Object ITelephonyStub;
Class ITelephonyClass;
TelephonyManager telephonyManager;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView)
findViewById(R.id.show_mobile_state);
mOpenMoblieNet = (Button)
findViewById(R.id.open_mobile_network);
telephonyManager = (TelephonyManager)
getApplicationContext()
.getSystemService(Context.TELEPHONY_SERVICE);
mOpenMoblieNet.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
try
{
// 获取当前的状态
if (telephonyManager.getDataState() ==
TelephonyManager.DATA_CONNECTED)
{
isEnabled = true;
mTextView.setText("数据连接已开启");
} else
{
isEnabled = false;
mTextView.setText("数据连接已关闭");
}
Log.i("debugs", "当前数据连接是:" + isEnabled);
telephonyManagerClass = Class.forName(telephonyManager
.getClass().getName());
Method getITelephonyMethod = telephonyManagerClass
.getDeclaredMethod("getITelephony");
getITelephonyMethod.setAccessible(true);
ITelephonyStub = getITelephonyMethod
.invoke(telephonyManager);
ITelephonyClass =
Class.forName(ITelephonyStub.getClass()
.getName());
if (isEnabled)
{
dataConnSwitchmethod = ITelephonyClass
.getDeclaredMethod("disableDataConnectivity");
mTextView.setText("数据连接已关闭");
Log.i("debugs", "当前数据连接是:" + isEnabled);
} else
{
dataConnSwitchmethod = ITelephonyClass
.getDeclaredMethod("enableDataConnectivity");
mTextView.setText("数据连接已打开");
Log.i("debugs", "当前数据连接是:" + isEnabled);
}
dataConnSwitchmethod.setAccessible(true);
dataConnSwitchmethod.invoke(ITelephonyStub);
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}