【问题标题】:Java Android internet Access: WIFI or 3GJava Android 互联网接入:WIFI 或 3G
【发布时间】:2012-03-05 11:48:35
【问题描述】:

在我的 android 应用程序中,它必须访问远程服务器以发送请求并接收响应以继续功能。

我需要澄清一下,在发送请求之前,在两者都可用的情况下,我是否必须特别选择它应该是 WIFI 或 Mobile(3G) Internet。我不确定 ANDROID OS 本身会选择其中最好的还是会在运行时给出异常。我无法测试它,因为我正在使用模拟器。想知道标准方式。

我可以通过以下代码检查它是否连接了WIFI或3G(移动)。在我发送请求之前想知道我是否必须选择它应该是 WIFI 或 MOBILE(3G) 互联网。高度赞赏适当的指导。提前谢谢...

   ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
   NetworkInfo[] netInfo = cm.getAllNetworkInfo();

   for (NetworkInfo ni : netInfo) 
   {
       if (ni.getTypeName().equalsIgnoreCase("WIFI") && ni.isConnected())
       {
            Toast.makeText(getApplicationContext(), "Connected to Internet with WIFI", Toast.LENGTH_LONG).show();
       }
       if (ni.getTypeName().equalsIgnoreCase("MOBILE") && ni.isConnected())
       {
            Toast.makeText(getApplicationContext(), "Connected to Internet with 3G", Toast.LENGTH_LONG).show();
       }
   }

【问题讨论】:

    标签: java android mobile android-intent android-service


    【解决方案1】:

    在两种都可用的情况下,我是否必须特别选择它应该是WIFI或移动(3G)互联网

    操作系统会处理这个问题。如果有已知且已配置的 WiFi 接入点可用,Android 将使用它。

    更重要的是,您不能自己“选择”它。你得到了操作系统给你的东西。

    【讨论】:

    • 感谢 CommonsWare... 如果 ANDROID OS 可以处理这个问题,那就没问题了。我想知道是否会发生任何异常情况.. 谢谢。我会继续……
    【解决方案2】:

    操作系统会处理这个问题。如果有已知且已配置的 WiFi 接入点可用,Android 将使用它。

    确实如此。我只是想通过运行您的代码来验证这一点,所以我这样做了,结果是。

    步骤:

    1. 确保 Wifi 已打开并已连接。
    2. 确保移动 (3G) 网络已开启。
    3. 执行上面的代码

    结果: android选择wifi而不是mobile(3g)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      • 1970-01-01
      • 2018-12-31
      • 1970-01-01
      • 2018-02-02
      • 1970-01-01
      • 2014-07-21
      相关资源
      最近更新 更多