0

显示带有 android 的 google map API v2。有时我的应用程序在没有互联网连接时崩溃,比如当我放 GOOGLE Place API 时。当我点击 ATM 并且没有互联网时,应用程序将崩溃。我想破例,所以当没有互联网连接时,地图可以显示手机没有互联网连接的通知。

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

4

3 回答 3

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;
}

这可能会帮助你.. :)

于 2013-09-18T05:05:46.817 回答
0

您可以使用此方法检查设备上是否有 Internet 连接:

public boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager
            .getActiveNetworkInfo();
    return activeNetworkInfo != null;
}
于 2013-09-11T17:49:06.640 回答
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();
 }
}

不要忘记检查清单中的网络权限

*方法取自Emmanuel的回答

于 2013-09-11T19:31:03.713 回答