Как я могу всплывающее окно, когда нет соединения по умолчанию диалог Connection Failed? - PullRequest
2 голосов
/ 12 мая 2010

Всякий раз, когда приложению требуется интернет и происходит сбой соединения, я получаю диалоговое окно с сообщением

Connection failed<br> This application requires network access. Enable mobile network or Wi-Fi to download data.

и две кнопки, Настройки, Отмена.

Как обнаружить, что нет подключения к интернету?
Как вывести на экран одно и то же диалоговое окно в моем приложении?

Ответы [ 2 ]

17 голосов
/ 12 мая 2010
/**
 * Checks if we have a valid Internet Connection on the device.
 * @param ctx
 * @return True if device has internet
 *
 * Code from: http://www.androidsnippets.org/snippets/131/
 */
public static boolean haveInternet(Context ctx) {

    NetworkInfo info = (NetworkInfo) ((ConnectivityManager) ctx
            .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();

    if (info == null || !info.isConnected()) {
        return false;
    }
    if (info.isRoaming()) {
        // here is the roaming option you can change it if you want to
        // disable internet while roaming, just return false
        return true;
    }
    return true;
}
/**
     * Display a dialog that user has no internet connection
     * @param ctx1
     *
     * Code from: http://osdir.com/ml/Android-Developers/2009-11/msg05044.html
     */
    public static void showNoConnectionDialog(Context ctx1) {
        final Context ctx = ctx1;
        AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
        builder.setCancelable(true);
        builder.setMessage(R.string.no_connection);
        builder.setTitle(R.string.no_connection_title);
        builder.setPositiveButton(R.string.settings, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                ctx.startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
            }
        });
        builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                return;
            }
        });
        builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
            public void onCancel(DialogInterface dialog) {
                return;
            }
        });

        builder.show();
    }
3 голосов
/ 12 мая 2010

Здесь вы можете найти справку о том, как создавать диалоги

http://developer.android.com/guide/topics/ui/dialogs.html

Вот фрагмент кода, который должен помочь вам определить доступ к Интернету:

http://www.androidsnippets.org/snippets/131/

Кстати: не вы ли задавали этот вопрос уже 15 ноября 2009 года? http://groups.google.com/group/android-beginners/browse_thread/thread/715cedfc5fd6f020?utoken=QyP-dzQAAACEe9Lph6eUOAakqA3-BnR-KvPfK0ltyCETgVsCM3D7GeEWTAM9S5G8WBs1q2tBppm1FwwMIvCGKnxkm-CrwSdp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...