Страница 1 из 1
Блокировка использования 3g приложением
Добавлено: 15 май 2013, 10:22
klblk
Извиняюсь, если тема уже поднималась. Собственно в приложение нужно сделать настройку "Использовать мобильную сеть". И если галочка не стоит, то приложение не должно использовать 3g, но могло бы использовать wi-fi если таковой имеется. Подскажите, как это лучше реализовать?
Re: Блокировка использования 3g приложением
Добавлено: 17 май 2013, 12:11
klblk
Сделал с помощью BroadcastReceiver'а:
[syntax=java]private BroadcastReceiver internetReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
boolean newValue = isInternetConnected;
ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = connManager.getActiveNetworkInfo();
newValue = activeNetwork != null && activeNetwork.isConnected();
if (activeNetwork != null) {
if (isWifiOnly){
if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
isStoppedOfWifi = true;
}
else {
isStoppedOfWifi = false;
}
}
}
isInternetConnected = newValue;
onInternetConnectionChanged();
onWarningChanged();
}
};[/syntax]
в манифесте:
[syntax=xml]<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />[/syntax]
в onCreate привязываю Receiver:
[syntax=java]registerReceiver(internetReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));[/syntax]
ну и в onDestroy "отвязываю":
[syntax=java]unregisterReceiver(internetReceiver);[/syntax]
На первый взгляд вроде бы все работает, есть ли какие-нибудь подводные камни, как думаете?