0

を使用してアプリケーションを作成しています

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

そして、WebViewを使用してURLを起動しています。ただし、モバイルがWIFIおよびインターネット3Gに接続されていない場合、WebViewには正確にURLリンクが表示されます。

インターネットに接続していない場合、ユーザーにWebViewのURLリンクを表示させたくないのですが、どうすればよいですか?

よろしく、Virak

4

2 に答える 2

2

次の関数の戻り値を確認し(オンラインの場合はtrue、そうでない場合はfalse)、目的に応じて出力を変更します。

private boolean haveNetworkConnection() {
        boolean haveConnectedWifi = false;
        boolean haveConnectedMobile = false;

        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo[] netInfo = cm.getAllNetworkInfo();
        for (NetworkInfo ni : netInfo) {
            if (ni.getTypeName().equalsIgnoreCase("WIFI"))
                if (ni.isConnected())
                    haveConnectedWifi = true;
            if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
                if (ni.isConnected())
                    haveConnectedMobile = true;
        }
        return haveConnectedWifi || haveConnectedMobile;
    }

接続がない場合にポップアップまたはトーストを表示したい場合は、アクティビティにその機能を含めると、トーストを表示する次の操作を実行できます。

if(!haveNetworkConnection()){
    Toast.makeText(this,"No internet connection",Toast.LENGTH_LONG).show();
}else{
    //Do whatever you need if there IS connectivity
}

私はあなたに与えている機能を使うのが好きです(何ヶ月も前にどこからコピーしたのかわかりません)。それは私がwifiまたはモバイルインターネットを持っている場合にのみtrueを返す必要がある場合に簡単に変更できるので、Wi-Fi接続が利用可能な場合にのみ高解像度ビデオをダウンロードするインスタンス。

于 2012-05-18T08:35:14.003 に答える
0

インターネット接続の確認に関するサンプルコード。

public static boolean checkInternetConnection(Context context) {

        ConnectivityManager conMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

        // ARE WE CONNECTED TO THE NET?
        if (conMgr.getActiveNetworkInfo() != null
                && conMgr.getActiveNetworkInfo().isAvailable()
                && conMgr.getActiveNetworkInfo().isConnected()) {
            return true;
        } else {
            Log.w(TAG, "Internet Connection NOT Present");
            return false;
        }
    }
于 2012-05-18T08:56:39.970 に答える