我的应用程序使用Google API 2.0中的MapView。移动数据使用是一个问题,因此我想限制Google地图仅使用Wifi。当我阻止所有网络连接时,我会看到缓存的地图数据,这是我在大多数情况下所需要的。
但我也有一些后台任务,我想在移动数据上运行。
所以我要做的就是在没有网络限制的情况下使用只有Wifi模式的谷歌地图,而不是对应用程序的其余部分(当然还有其他应用程序)。
如果我可以将MapView置于“离线”模式,我想我可以使它工作,防止它的所有网络使用。我可以根据无线网络的可用性来打开和关闭它。
答案 0 :(得分: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();