How to respect network use settings in Android

前端 未结 3 1096
傲寒
傲寒 2020-12-13 16:04

My app performs some backgound data collection and I\'m adding support for the user network preferences, such as performing background updates and data roaming. I have the

相关标签:
3条回答
  • 2020-12-13 16:49

    Additionally to your checks I also do check for roaming state for 3g network:

    NetworkInfo info = m_connectivityManager.getActiveNetworkInfo();
    int netType = info.getType();
    int netSubtype = info.getSubtype();
    
    if (netType == ConnectivityManager.TYPE_WIFI || netType == ConnectivityManager.TYPE_WIMAX)  
    {
       //no restrictions, do some networking
    }
    else if (netType == ConnectivityManager.TYPE_MOBILE && 
         netSubtype == TelephonyManager.NETWORK_TYPE_UMTS)
    {
       //3G connection
       if(!m_telephonyManager.isNetworkRoaming())
       {
          //do some networking
       }      
    }
    

    My application uses a lot of data, so I do not allow data downloading on non-3g mobile networks.

    0 讨论(0)
  • 2020-12-13 16:55

    The user may change the settings while your background app is running. The API recommends that you listen to the broadcast message:

    ConnectivityManager.ACTION_BACKGROUND_DATA_SETTING_CHANGED 
    

    Perhaps you are checking cm.getBackgroundDataSetting() prior to sending data, and I suspect this would be sufficient. However, listening to the broadcast message will let you resume sending background data when the settings are changed.

    I believe that either listening to the broadcast message or checking the settings before sending data will suffice. Android docs recommends the former.

    0 讨论(0)
  • 2020-12-13 16:56

    Like @inazaruk, I a also trying to prevent (for the user possibly expensive) network transfers when roaming or downloading images while on GPRS only. Therefore in Zwitscher I've implemented a NetworkHelper that checks against users preferences on romaing and minimal network state; https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/helper/NetworkHelper.java The matching preferences are here: https://github.com/pilhuhn/ZwitscherA/blob/master/res/xml/preferences.xml#L30

    0 讨论(0)
提交回复
热议问题