以編程方式在android中啟用/禁用數(shù)據(jù)連接我想以編程方式啟用/禁用數(shù)據(jù)連接。我使用了以下代碼:void enableInternet(boolean yes){
ConnectivityManager iMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
Method iMthd = null;
try {
iMthd = ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", boolean.class);
} catch (Exception e) {
}
iMthd.setAccessible(false);
if(yes)
{
try {
iMthd.invoke(iMgr, true);
Toast.makeText(getApplicationContext(), "Data connection Enabled", Toast.LENGTH_SHORT).show();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
dataButton.setChecked(false);
Toast.makeText(getApplicationContext(), "IllegalArgumentException", Toast.LENGTH_SHORT).show();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
Toast.makeText(getApplicationContext(), "IllegalAccessException", Toast.LENGTH_SHORT).show();
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
dataButton.setChecked(false);
Toast.makeText(getApplicationContext(), "InvocationTargetException", Toast.LENGTH_SHORT).show();
}
}
else
{
try {
iMthd.invoke(iMgr, true);
Toast.makeText(getApplicationContext(), "Data connection Disabled", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
dataButton.setChecked(true);
Toast.makeText(getApplicationContext(), "Error Disabling Data connection", Toast.LENGTH_SHORT).show();
}
}}它在模擬器中沒有任何錯誤,但是,當我嘗試在真實設備上運行它時,我得到“InvocationTargetException”。我正在使用API級別8來構(gòu)建應用程序。
2 回答

阿波羅的戰(zhàn)車
TA貢獻1862條經(jīng)驗 獲得超6個贊
@riHaN JiTHiN您的程序適用于2.3及以上版本,但它需要在'else'語句中進行一些小改動:
else { try { iMthd.invoke(iMgr, true);
'true'應該改為'false'
iMthd.invoke(iMgr, false);
- 2 回答
- 0 關注
- 417 瀏覽
添加回答
舉報
0/150
提交
取消