当互联网连接不可用时,谷歌地图v2安卓崩溃

时间:2013-09-11 17:42:48

标签: android google-maps

用android显示谷歌地图API v2。有时我的应用程序在没有互联网连接时崩溃,就像我放置GOOGLE Place API一样。当我点击ATM而没有互联网时,应用程序将崩溃。  我想做一个例外,所以当没有互联网连接时,地图可以显示电话会议有互联网连接的通知。

找到了解决这个问题的方法 http://www.androidhive.info/2012/07/android-detect-internet-connection-status/

3 个答案:

答案 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 的回答