3

現在、Web ビューを使用してローカルの HTML コンテンツを表示していますが、このコンテンツはオンラインの画像を参照している可能性があります。ユーザーが 3G/4G を使用しているときに、このオンライン データがダウンロードされないようにする必要があります。私は、WebviewがWifiでのみインターネットにアクセスできるようにしたいだけです。それを行う方法が見つかりませんでした...それは可能ですか?

4

1 に答える 1

1

ロードする URL とロードしない URL を処理するには: -

「WebビューでWebViewクライアントを使用し、このメソッドshouldOverrideUrlLoadingをオーバーライドします。異なる状態を使用しているローカルURLの1つではない場合、およびそのメソッドの要件に基づいている場合は、URLを呼び出さないでください」


Wi-Fi または 3G/4G のいずれかを決定するには:- 以下のコードを使用すると、電話が Wi-Fi 経由で接続されているか、データ経由で接続されているかを検出し、それに応じて動作できます。

            public static boolean isDataEnabled(Context context)
            {
                return (isMobileDataEnabled(context) || isWifiEnabled(context));
            }


            public static boolean isMobileDataEnabled(Context context)
            {
                if(context == null)
                    return false;
                ConnectivityManager connectivityManager = (ConnectivityManager)
                    context.getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo networkInfo = null;
                if (connectivityManager != null) {
                    networkInfo =
                        connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
                }
                return networkInfo == null ? false : networkInfo.isConnected();
            }

            public static boolean isWifiEnabled(Context context)
            {
                if(context == null)
                    return false;
                ConnectivityManager connectivityManager = (ConnectivityManager)
                    context.getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo networkInfo = null;
                if (connectivityManager != null) {
                    networkInfo =
                        connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
                }
                return networkInfo == null ? false : networkInfo.isConnected();
            }


    //Chceking user preference:

        public static boolean shouldUseOnlineServices(Context context)
        {
            if(context == null || isDataEnabled(context) == false)
                return false;

            SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
            if(pref != null)
            {
                //String wifi = pref.getString("pref_camera_when_to_use_online_services","1");
                //boolean onlyOnWifi = (wifi.equals("0")== true) ? false:true;
                boolean onlyOnWifi = pref.getBoolean("pref_radio_wifi", false);
                if(onlyOnWifi == false)
                    return true;
                if(isWifiEnabled(context) == true)
                    return true;
                else
                    return false;
            }

            if(isWifiEnabled(context) == true)
                return true;
            else
                return false;
        }   
于 2013-08-13T06:56:28.057 に答える