Ответ 1
После поиска дней и исследования этой проблемы я не мог найти ответа на это. Пыль я подниму все попытки, которые я сделал.
С помощью этого класса вы можете начать загрузку через любую сеть или устройство и он будет обрабатывать все состояния, например. потеря сети, перезагрузка устройства, и т.д...
Существует два метода:
getMaxBytesOverMobile
иgetRecommendedMaxBytesOverMobile
, они были довольно успешным кандидатом для решения этой проблемы в первый раз. Но после тестов кода и Внедрение диспетчера загрузок, я обнаружил, что есть нет способа получить значения Thoose с помощью DownloadManager.Причина
Способы Thoose вызывают
Settings.Secure.getLong
с ними соответствующие ярлыкиSettings.Secure.DOWNLOAD_MAX_BYTES_OVER_MOBILE
иSettings.Secure.DOWNLOAD_RECOMMENDED_MAX_BYTES_OVER_MOBILE
в поворот обращается к ленивомуString
карте внутри внутри внутренний класс называетсяNameValueCache
.Хорошо до сих пор, но ни один из внутренних классов или
Settings
не реализовал его самостоятельно использоватьDOWNLOAD_MAX_BYTES_OVER_MOBILE
илиDOWNLOAD_RECOMMENDED_MAX_BYTES_OVER_MOBILE
внутри.Я считал, что ленивая карта была заполнена третьим лицом, что на самом деле это происходит, поэтому я нашел
NameValueTable
Settings
внутренний класс, который обрабатывает новые значения для ленивой карты.putString
является вызовом методаprotected
Settings.Secure
иSettings.System
внутренние классы (вызовы Secure и Система).Итак, я могу заключить, что если реализация ОС не ставит значения Stoose String, я не могу их получить.
2. TrafficStats
Просто взглянув на официальную ссылку, я заметил, что это будет не помогите мне, потому что этот класс просто предоставляет количество байтов и пакетов, которые были загружены с момента последней загрузки устройства.
http://developer.android.com/reference/android/net/TrafficStats.html
3. NetworkPolicyManager и NetworkPolicy
Поскольку @bina отправлено здесь, оба класса скрыты и не могут использовать обычными приложениями, например. которые будут опубликованы в Google Play.
Короче говоря, вы просто можете получить
NetworkInfo
, которые не обеспечивают много информации о предпочтениях пользователя (на самом деле нет!). Просто обеспечьте информацию о сети и, например, поставщик мобильной сети.http://developer.android.com/reference/android/net/ConnectivityManager.html
В конце концов, я предполагаю, что сейчас нет возможности получить эту информацию. Пожалуйста, если вы прочтете его и найдете здесь свой путь!
Спасибо всем.
PS: Извините за ошибки на английском языке.