显示带有 android 的 google map API v2。有时我的应用程序在没有互联网连接时崩溃,比如当我放 GOOGLE Place API 时。当我点击 ATM 并且没有互联网时,应用程序将崩溃。我想破例,所以当没有互联网连接时,地图可以显示手机没有互联网连接的通知。
为这个问题找到了解决方案 http://www.androidhive.info/2012/07/android-detect-internet-connection-status/
显示带有 android 的 google map API v2。有时我的应用程序在没有互联网连接时崩溃,比如当我放 GOOGLE Place API 时。当我点击 ATM 并且没有互联网时,应用程序将崩溃。我想破例,所以当没有互联网连接时,地图可以显示手机没有互联网连接的通知。
为这个问题找到了解决方案 http://www.androidhive.info/2012/07/android-detect-internet-connection-status/
尝试把这段代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (servicesOK()) {
Toast.makeText(this, "Ready to map!", Toast.LENGTH_LONG).show();
setContentView(R.layout.testmap);
} else {
setContentView(R.layout.activitymain);
}
}
public boolean servicesOK() {
int isAvailable = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (isAvailable == ConnectionResult.SUCCESS) {
return true;
} else if (GooglePlayServicesUtil.isUserRecoverableError(isAvailable)) {
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(isAvailable,
this, GPS_ERRORDIALOG_REQUEST);
dialog.show();
} else {
Toast.makeText(this, "Can not connect!", Toast.LENGTH_SHORT).show();
}
return false;
}
这可能会帮助你.. :)
您可以使用此方法检查设备上是否有 Internet 连接:
public boolean isNetworkAvailable() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager
.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
使用 if 语句来处理崩溃。
public boolean isNetworkAvailable() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager
.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
if (isNetworkAvailable == true){
//your map code
} else {
Log.e("Error","No network");
Toast.makeText(this, "no internet" , Toast.LENGTH_LONG).show();
}
}
不要忘记检查清单中的网络权限。
*方法取自Emmanuel的回答