Java 如何使用切换按钮打开和关闭gprs?
我有一个名为gprs的切换按钮。我需要它来打开和关闭gprs。如何做到这一点?我已经看过了,但它给出了erros,我不知道如何在我的案例中使用它。好的,如果有人有相同的问题,我会在这里发布解决方案,使用切换按钮。首先,我为gprs设置创建了单独的类:Java 如何使用切换按钮打开和关闭gprs?,java,android,gprs,Java,Android,Gprs,我有一个名为gprs的切换按钮。我需要它来打开和关闭gprs。如何做到这一点?我已经看过了,但它给出了erros,我不知道如何在我的案例中使用它。好的,如果有人有相同的问题,我会在这里发布解决方案,使用切换按钮。首先,我为gprs设置创建了单独的类: public class GprsSettings { static void setMobileDataEnabled(Context context, boolean enabled) { try {
public class GprsSettings {
static void setMobileDataEnabled(Context context, boolean enabled) {
try {
final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
final Class conmanClass = Class.forName(conman.getClass().getName());
final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
iConnectivityManagerField.setAccessible(true);
final Object iConnectivityManager = iConnectivityManagerField.get(conman);
final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
setMobileDataEnabledMethod.setAccessible(true);
setMobileDataEnabledMethod.invoke(iConnectivityManager, enabled);
Log.i("setMobileDataEnabled()","OK");
}
catch (Exception e)
{
e.printStackTrace();
Log.i("setMobileDataEnabled()","FAIL");
}
}
}
然后,首先在“我的活动”中添加一些代码,以检查gprs是否打开……将其置于onCreate方法之上:
private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
// There are no active networks.
return false;
} else
return true;
}
}
然后,在我的活动中,我将以下代码用于toast切换按钮:
gprs.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
try {
if (((ToggleButton)v).isChecked()) {
GprsSettings.setMobileDataEnabled(getApplicationContext(), true);
Toast.makeText(getApplicationContext(), "GPRS is ON", Toast.LENGTH_LONG).show();
}else{
GprsSettings.setMobileDataEnabled(getApplicationContext(), false);
Toast.makeText(getApplicationContext(), "GPRS is OFF", Toast.LENGTH_LONG).show();
}
}
catch (Exception localException) {
Log.e("SwarmPopup", "error on GPRS listerner: " + localException.getMessage(), localException);
}
}
});
gprs.setChecked(isNetworkConnected());
就是这样,就像一个符咒。你犯了什么错误?你添加了权限吗?检查这个检查这个alsoNezam,是的,我添加了@PAD我看到了这一点,但我不知道如何在代码中实现它。我有一个拨动按钮,但实际上它不像一个符咒。它可以工作,但是…即使我手机上的gprs已关闭但无线已打开,gprs按钮也会打开:((