Como verificar se o Google Glass está conectado à Internet usando o GDK

Existe uma maneira de detectar se o Google Glass está conectado à Internet em tempo de execução? Por exemplo, muitas vezes recebo a mensagem "Não é possível acessar o Google agora" ao usar a entrada de voz no meu aplicativo. Em vez disso, gostaria de interceptar preventivamente a condição que causaria essa mensagem e usar valores padrão em vez de solicitar entrada de voz. Depois de pesquisar um pouco, a única coisa que encontrei foi uma solução para a mesma pergunta para o Android em geral:

private boolean isConnected() {
    ConnectivityManager connectivityManager
            = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}

Tentei usar isso no meu Glassware, mas ele parece não funcionar (desliguei o wifi e os dados, mas o isConnected () ainda retorna verdadeiro, mesmo que eu receba a mensagem "Não é possível acessar o Google agora"). Alguém sabe se o GDK tem uma maneira de fazer isso? Ou algo semelhante ao método acima deve funcionar?

EDIT: Aqui está a minha solução eventual, baseada parcialmente na resposta de EntryLevelDev abaixo.

Eu tive que usar um encadeamento em segundo plano para usar solicitações HTTP GET para evitar a obtenção de uma NetworkOnMainThreadException, por isso decidi executá-la a cada poucos segundos e atualizar uma variável local isConnected:

public static boolean isConnected = false;

public boolean isDeviceConnectedToInternet() {
    return isConnected;
}

private class CheckConnectivityTask extends AsyncTask<Void, Boolean, Boolean> {
    protected Boolean doInBackground(Void... voids) {
        while(true) {
            // Update isConnected variable.
            publishProgress(isConnected());
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * Determines if the Glassware can access the internet.
     * isNetworkAvailable() is used first because there is no point in executing an HTTP GET
     * request if ConnectivityManager and NetworkInfo tell us that no network is available.
     */
    private boolean isConnected(){
        if (isNetworkAvailable()) {
            HttpGet httpGet = new HttpGet("http://www.google.com");
            HttpParams httpParameters = new BasicHttpParams();
            HttpConnectionParams.setConnectionTimeout(httpParameters, 3000);
            HttpConnectionParams.setSoTimeout(httpParameters, 5000);

            DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
            try{
                Log.d(LOG_TAG, "Checking network connection...");
                httpClient.execute(httpGet);
                Log.d(LOG_TAG, "Connection OK");
                return true;
            }
            catch(ClientProtocolException e){
                e.printStackTrace();
            }
            catch(IOException e){
                e.printStackTrace();
            }
            Log.d(LOG_TAG, "Connection unavailable");
        } else {
            // No connection; for Glass this probably means Bluetooth is disconnected.
            Log.d(LOG_TAG, "No network available!");
        }
        return false;
    }

    private boolean isNetworkAvailable() {
        ConnectivityManager connectivityManager
                = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        Log.d(LOG_TAG, String.format("In isConnected(), activeNetworkInfo.toString(): %s",
                activeNetworkInfo == null ? "null" : activeNetworkInfo.toString()));
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();
    }

    protected void onProgressUpdate(Boolean... isConnected) {
        DecisionMakerService.isConnected = isConnected[0];
        Log.d(LOG_TAG, "Checking connection: connected = " + isConnected[0]);
    }
}

Para iniciar, liguenew CheckConnectivityTask().execute(); (provavelmente de onCreate ()). Eu também tive que adicioná-los ao meu Android.manifest:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

questionAnswers(2)

yourAnswerToTheQuestion