用android显示谷歌地图API v2。有时我的应用程序在没有互联网连接时崩溃,就像我放置GOOGLE Place API一样。当我点击ATM而没有互联网时,应用程序将崩溃。 我想做一个例外,所以当没有互联网连接时,地图可以显示电话会议有互联网连接的通知。
找到了解决这个问题的方法 http://www.androidhive.info/2012/07/android-detect-internet-connection-status/
答案 0 :(得分:1)
尝试输入此代码:
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;
}
这可能对你有帮助.. :))
答案 1 :(得分:0)
您可以使用此方法检查设备上是否存在互联网连接:
public boolean isNetworkAvailable() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager
.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
答案 2 :(得分:0)
使用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();
}
}
不要忘记检查清单中的network permission。
*该方法取自 Emmanuel 的回答