Android判断网络是否连接,跳转到设置页面以及判断连接的是什么网络

2025-04-08 16:30:34
推荐回答(2个)
回答1:

直接看顶部的通知栏就可以了,E、G是2g网H是3g网

回答2:

  一、判断网络连接是否可用,不可用跳转到设置界面

  view sourceprint?
  01.
  @Override
  02.
  protected void onStart() {
  03.
  AlertDialog.Builder builder=new Builder(this);
  04.
  
  05.
  //检查用户的网络情况
  06.
  ConnectivityManager cm=(ConnectivityManager) MainActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE);
  07.
  //返回当前可用网络信息
  08.
  
  09.
  NetworkInfo info=cm.getActiveNetworkInfo();
  10.
  if(info!=null&&info.isConnected()){
  11.
  Toast.makeText(MainActivity.this, "网络可用", 0).show();
  12.
  
  13.
  }else{
  14.
  Toast.makeText(MainActivity.this, "网络不可用", 0).show();
  15.
  builder.setTitle("提醒");
  16.
  builder.setMessage("当前网络不可用,点击确定设置网络");
  17.
  builder.setPositiveButton("确定", new OnClickListener() {
  18.
  
  19.
  @Override
  20.
  public void onClick(DialogInterface dialog, int which) {
  21.
  Intent intent=new Intent();
  22.
  intent.setClassName("com.android.settings", "com.android.settings.Settings");
  23.
  startActivity(intent);
  24.
  }
  25.
  }
  26.
  );
  27.
  builder.create().show();
  28.
  }
  29.
  
  30.
  super.onStart();
  31.
  }

  二、使用ConnectionChangeReceiver判断网络是否可用

  

  view sourceprint?
  01.
  public class MainActivity extends Activity {
  02.
  private ConnectionChangeReceiver myReceiver;
  03.
  
  04.
  @Override
  05.
  protected void onCreate(Bundle savedInstanceState) {
  06.
  super.onCreate(savedInstanceState);
  07.
  setContentView(R.layout.activity_main);
  08.
  //用广播判断
  09.
  myReceiver=new ConnectionChangeReceiver();
  10.
  this.registerReceiver(myReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
  11.
  }
  12.
  public class ConnectionChangeReceiver extends BroadcastReceiver
  13.
  {
  14.
  @Override
  15.
  public void onReceive(Context context, Intent intent) {
  16.
  ConnectivityManager connectivityManager = (ConnectivityManager)
  17.
  context.getSystemService(Context.CONNECTIVITY_SERVICE);
  18.
  NetworkInfo mobworkInfo = connectivityManager
  19.
  .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
  20.
  NetworkInfo wifiworkInfo = connectivityManager
  21.
  .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
  22.
  boolean IsNetConnected = mobworkInfo.isConnected();
  23.
  boolean IsWifiConnected = wifiworkInfo.isConnected();
  24.
  if(IsNetConnected || IsWifiConnected){
  25.
  System.out.println("网络打开");
  26.
  Log.e("wankai", "wankai");
  27.
  boolean isConnected = true;
  28.
  }else{
  29.
  boolean isConnected = false;
  30.
  System.out.println("网络关闭");
  31.
  Log.e("wankai2", "wangguan");
  32.
  }
  33.
  }
  34.
  }
  35.
  
  36.
  
  37.
  }
  view sourceprint?
  1.
  

  三、判断GPS是否打开

  view sourceprint?
  1.
  public static boolean isGpsEnabled(Context context) {
  2.
  LocationManager lm = ((LocationManager) context
  3.
  .getSystemService(Context.LOCATION_SERVICE));
  4.
  List accessibleProviders = lm.getProviders(true);
  5.
  return accessibleProviders != null && accessibleProviders.size() > 0;
  6.
  }
  

  四、判断WIFI是否打开

  view sourceprint?
  01.
  public static boolean isWifiEnabled(Context context) {
  02.
  ConnectivityManager mgrConn = (ConnectivityManager) context
  03.
  .getSystemService(Context.CONNECTIVITY_SERVICE);
  04.
  TelephonyManager mgrTel = (TelephonyManager) context
  05.
  .getSystemService(Context.TELEPHONY_SERVICE);
  06.
  return ((mgrConn.getActiveNetworkInfo() != null && mgrConn
  07.
  .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel
  08.
  .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);
  09.
  }
  

  五、判断是否是3G网络

  view sourceprint?
  01.
  public static boolean is3rd(Context context) {
  02.
  ConnectivityManager cm = (ConnectivityManager) context
  03.
  .getSystemService(Context.CONNECTIVITY_SERVICE);
  04.
  NetworkInfo networkINfo = cm.getActiveNetworkInfo();
  05.
  if (networkINfo != null
  06.
  && networkINfo.getType() == ConnectivityManager.TYPE_MOBILE) {
  07.
  return true;
  08.
  }
  09.
  return false;
  10.
  }
  

  六、判断是wifi还是3g网络,用户的体现性在这里了,wifi就可以建议下载或者在线播放。

  view sourceprint?
  01.
  public static boolean isWifi(Context context) {
  02.
  ConnectivityManager cm = (ConnectivityManager) context
  03.
  .getSystemService(Context.CONNECTIVITY_SERVICE);
  04.
  NetworkInfo networkINfo = cm.getActiveNetworkInfo();
  05.
  if (networkINfo != null
  06.
  && networkINfo.getType() == ConnectivityManager.TYPE_WIFI) {
  07.
  return true;
  08.
  }
  09.
  return false;
  10.
  }
转载