我想检查,当我的应用程序启动时,如果GPRS/3G打开或关闭。我在下面有这个代码,并且它通常检查互联网是否打开(wifi或3G),并且例如wifi是否打开,将我的wifi和gprs开关按钮设置为ON。我不能那样。我想如果wifi打开只有wifi切换按钮,而不是gprs。按钮工作正常,只有在启动时检查并设置它的值不起作用。如何检查GPRS/3G是否打开?
public class SwarmPopup extends SwarmActivity implements OnClickListener{
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;
}
Button ok;
WifiManager wifiMan;
ToggleButton wifi, gprs;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.swarmpopup);
addListenerOnButton();
wifi.setChecked(wifiMan.isWifiEnabled());
ok.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
wifi.setOnClickListener(new OnClickListener() { //Ukljucuje WiFi
@Override
public void onClick(View v) {
wifi.setEnabled(wifiMan.isWifiEnabled());
try
{
if (((ToggleButton)v).isChecked()){
SwarmPopup.this.wifiMan.setWifiEnabled(true);
Toast.makeText(getApplicationContext(), "WiFi je uključen", Toast.LENGTH_LONG).show();
}else{
SwarmPopup.this.wifiMan.setWifiEnabled(false);
Toast.makeText(getApplicationContext(), "WiFi je isključen", Toast.LENGTH_LONG).show();
}
}
catch (Exception localException)
{
Log.e("SwarmPopup", "error on WiFi listerner: " + localException.getMessage(), localException);
}
}
});
gprs.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try
{
if (((ToggleButton)v).isChecked()){
GprsSettings.setMobileDataEnabled(getApplicationContext(), true);
Toast.makeText(getApplicationContext(), "GPRS je uključen", Toast.LENGTH_SHORT).show();
}else{
GprsSettings.setMobileDataEnabled(getApplicationContext(), false);
Toast.makeText(getApplicationContext(), "GPRS je isključen", Toast.LENGTH_SHORT).show();
}
}
catch (Exception localException)
{
Log.e("SwarmPopup", "error on GPRS listerner: " + localException.getMessage(), localException);
}
}
});
gprs.setChecked(isNetworkConnected());
}
private void addListenerOnButton() {
Typeface dugme = Typeface.createFromAsset(getAssets(), "myriad.ttf");
ok = (Button) findViewById(R.id.btOKSwarm);
ok.setTypeface(dugme);
gprs = (ToggleButton) findViewById(R.id.tbGPRS);
wifi = (ToggleButton) findViewById(R.id.tbWiFi);
// Getting the WiFi Services
wifiMan=(WifiManager)getSystemService(Context.WIFI_SERVICE);
//Proverava da li je WiFi ukljucen ili ne
}
@Override
public void onClick(View v) {
}
}
你到底想要什么?检测是否启用3g/gprs? – stinepike 2013-03-14 14:05:36