如果没有Internet连接,Snackbar会弹出

时间:2016-02-04 08:39:47

标签: android android-studio android-snackbar

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

我的问题是,我如何实施或者更确切地说,如果检测到GPS未在电话中启用/没有互联网连接,则会弹出Snackbar? - 带有文字“Some”如果连接到互联网,将启用/使用功能“。

2 个答案:

答案 0 :(得分:3)

要检查设备是通过手机还是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);
}

答案 1 :(得分:0)

要检查网络连接,您可以在任何文件中创建公共功能,也可以在其他文件中调用它。

方法如下所示:

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

     }

此处MyApplication是清单文件中application tag中声明的活动名称。