gpt4 book ai didi

java - 如何使用切换按钮打开和关闭 GPRS?

转载 作者:行者123 更新时间:2023-12-01 04:48:46 26 4
gpt4 key购买 nike

我有一个名为 gprs 的切换按钮。我需要它来打开和关闭 GPRS。如何做到这一点?我看过here但它给出了错误,我不知道如何在我的情况下使用它。

最佳答案

好的,如果有人遇到同样的问题,我会使用切换按钮在此处发布解决方案。首先,我为 gprs 设置创建了单独的类:

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");
}
}
}

然后,首先在我的 Activity 中添加一些代码来检查 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;
}
}

然后,在我的 Activity 中,我使用此代码作为带有 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());

就是这样,就像一个魅力。

关于java - 如何使用切换按钮打开和关闭 GPRS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15376281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com