【问题标题】:Snackbar Pop Up If No Internet Connection如果没有 Internet 连接,则弹出 Snackbar
【发布时间】:2016-05-13 18:40:14
【问题描述】:

您好,我正在制作一个仅用于教育目的的应用程序。我已经在控制台开发者网站上启用了谷歌地图。

我的问题是,我如何实现或者更确切地说,如果 GPS 未在手机中启用/没有互联网连接 - 检测到 Snackbar 将弹出? - 带有文本“一些如果连接到 Internet,将启用/使用功能。

【问题讨论】:

    标签: android android-studio android-snackbar


    【解决方案1】:

    要检查设备是通过手机还是 wifi 连接,您可以使用以下代码:

    ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    
    //mobile
    State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
    
    //wifi
    State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
    

    然后像这样使用它:

    if (mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING) {
        //mobile
    } else if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING) {
        //wifi
    }
    

    还要检查 GPS 状态:

    public boolean isGPSEnabled (Context mContext){
        LocationManager locationManager = (LocationManager)
                    mContext.getSystemService(Context.LOCATION_SERVICE);
        return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    }
    

    【讨论】:

    • 我忘了问,你知道这个的 github 示例吗?
    • @RoCk 你到底想要什么功能?
    【解决方案2】:

    为了检查网络连接,您可以在任何文件中创建一个公共函数并在其他文件中调用它。

    方法如下:

      public static boolean isconnected () {
        ConnectivityManager connMan=(ConnectivityManager) MyApplication.getInstance().getApplicationContext().getSystemServices(Context.CONNECTIVITY_SERVICE) ;
        NetworkInfo = connMan.getActiveNetworkInfo();
        return active != null && active.isConnectedOrConnecting();
    
         }
    

    这里的 MyApplication 是在清单文件的应用程序标签中声明的活动的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多