我想在我的应用程序中禁用或启用Android设备中的使用数据包,我已经使用了以下代码:
try {
Method dataConnSwitchmethod;
Class telephonyManagerClass;
Object ITelephonyStub;
Class ITelephonyClass;
TelephonyManager telephonyManager = (TelephonyManager) NetworkMonitorDemoAppActivity.this.getSystemService(Context.TELEPHONY_SERVICE);
if (telephonyManager.getDataState() == TelephonyManager.DATA_CONNECTED) {
isEnabled = true;
} else {
isEnabled = false;
}
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");
} else {
dataConnSwitchmethod = ITelephonyClass.getDeclaredMethod("enableDataConnectivity");
}
dataConnSwitchmethod.setAccessible(true);
dataConnSwitchmethod.invoke(ITelephonyStub);
} catch (Exception e) {
System.out.println("error is occured in uses data packet enable & disable :-"+e.getMessage());
}
但是这段代码运行不正常。我的朋友可以帮我解决这个问题吗?
答案 0 :(得分:1)
我认为你在SO回答https://stackoverflow.com/a/4304110/582571
中引用代码在上面提到的链接中提到“这对Gingerbread 2.3+不起作用”请在另一个SO回答https://stackoverflow.com/a/5095956/582571
中查看详细说明。因此最好不要使用隐藏的API制作任何应用