0

私のアプリケーションは、Google API 2.0 の MapView を使用しています。モバイルデータの使用が懸念されるため、Google マップを Wifi のみを使用するように制限したいと考えています。すべてのネットワーク接続をブロックすると、キャッシュされたマップ データが表示されます。ほとんどの場合、これで十分です。

しかし、モバイル データでも実行したいバックグラウンド タスクもいくつかあります。

したがって、私が達成しなければならないことは、アプリケーションの残りの部分 (およびもちろん他のアプリ) にネットワーク制限を課すことなく、Wi-Fi のみのモードで Google マップを使用することです。

MapView を「オフライン」モードにして、すべてのネットワーク使用を防止できれば、機能させることができると思います。Wi-Fiの可用性に応じて、オンとオフを切り替えることができました。

4

1 に答える 1

0

次のクラスをコードに追加します。

public class NetworkState {

    public static int TYPE_WIFI = 1;
    public static int TYPE_MOBILE = 2;
    public static int TYPE_NOT_CONNECTED = 0;


    public static int getConnectivityStatus(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        if (null != activeNetwork) {
            if(activeNetwork.getType() == ConnectivityManager.TYPE_WIFI)
                return TYPE_WIFI;

            if(activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE)
                return TYPE_MOBILE;
        }
        return TYPE_NOT_CONNECTED;
    }
}

MapClass.java 内

if(NetworkState.getConnectivityStatus(context) != 2)
    mapMethod();
于 2016-03-13T12:54:26.850 に答える