【发布时间】:2016-05-13 18:40:14
【问题描述】:
您好,我正在制作一个仅用于教育目的的应用程序。我已经在控制台开发者网站上启用了谷歌地图。
我的问题是,我如何实现或者更确切地说,如果 GPS 未在手机中启用/没有互联网连接 - 检测到 Snackbar 将弹出? - 带有文本“一些如果连接到 Internet,将启用/使用功能。
【问题讨论】:
标签: android android-studio android-snackbar
您好,我正在制作一个仅用于教育目的的应用程序。我已经在控制台开发者网站上启用了谷歌地图。
我的问题是,我如何实现或者更确切地说,如果 GPS 未在手机中启用/没有互联网连接 - 检测到 Snackbar 将弹出? - 带有文本“一些如果连接到 Internet,将启用/使用功能。
【问题讨论】:
标签: android android-studio android-snackbar
要检查设备是通过手机还是 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);
}
【讨论】:
为了检查网络连接,您可以在任何文件中创建一个公共函数并在其他文件中调用它。
方法如下:
public static boolean isconnected () {
ConnectivityManager connMan=(ConnectivityManager) MyApplication.getInstance().getApplicationContext().getSystemServices(Context.CONNECTIVITY_SERVICE) ;
NetworkInfo = connMan.getActiveNetworkInfo();
return active != null && active.isConnectedOrConnecting();
}
这里的 MyApplication 是在清单文件的应用程序标签中声明的活动的名称。
【讨论】: