2012-06-11 2 views
7

Я пытаюсь написать виджет, чтобы включить/отключить LTE на Verizon Galaxy Nexus, не заходя в меню настроек, чтобы это сделать. Однако мне еще предстоит выяснить, как определить, действительно ли LTE включен. Я могу определить, имеет ли мой телефон в настоящее время сигнал LTE или сигнал EVDO, но не если LTE включен, когда телефон имеет сигнал EVDO.Определите, включен ли LTE?

Есть ли у кого-нибудь предложения относительно того, где искать ссылку на Android Developers? Я пробовал TelephonyManager & ConnectivityManager, но пока не работает для меня.

ответ

0

Вы пробовали это?

TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); 
boolean isLTEConnected = telephonyManager.getNetworkType() == TelephonyManager.NETWORK_TYPE_LTE; 
+0

я в настоящее время LTE включен на моем телефоне, но я на Соединение CDMA, которое возвращает false. То, что я застрял раньше. Он должен «работать», если логически мыслить, но он работает только в том случае, если у вас активное соединение LTE. Непосредственно из Справочника разработчика Android «public int getNetworkType() Возвращает константу, указывающую радиотехнику (тип сети), которая в настоящее время используется на устройстве для передачи данных». – smccloud

+0

Вы можете проверить ['ConnectivityManager'] (http://developer.android.com/reference/android/net/ConnectivityManager.html), используя комбинацию' getNetworkInfo (ConnectivityManager.TYPE_MOBILE) 'и' NetworkInfo.getTypeName () ', хотя я не уверен, что это даст вам то, что вы хотите. –

+0

NetworkInfo.getTypeName() возвращает «MOBILE» или «WIFI». Казалось бы, Google добавит правильную поддержку LTE, как и WiMAX, поскольку WiMAX мертв, и даже Sprint переключился на LTE. Кроме того, ConnectivityManager.getNetworkInfo (ConnectivityManager.TYPE_MOBILE) .toString() возвращает «06-11 15: 33: 32.239: W/LTE Toggle Widget (12811): NetworkInfo: type: mobile [CDMA - eHRPD], состояние: CONNECTED/CONNECTED , причина: simLoaded, дополнительно: VZWINTERNET, роуминг: false, failover: false, isAvailable: true "в LogCat. – smccloud

0

Смотрите эту ссылку: http://developer.android.com/reference/android/telephony/TelephonyManager.html и на этом вы можете найти пример: http://developer.android.com/training/efficient-downloads/connectivity_patterns.html

Вы должны использовать следующую функцию: TelephonyManager.getNetworkType()

+0

Я использую TelephonyManager.getNetworkType(), но он возвращает CDMA, даже если LTE включен, но у меня есть только соединение данных CDMA. Для меня нет никакого смысла, что нет простого способа определить, включен ли LTE (даже если это не текущее активное соединение). Непосредственно из Справочника разработчика Android «public int getNetworkType() Возвращает константу, указывающую радиотехнику (тип сети), которая в настоящее время используется на устройстве для передачи данных». – smccloud

+0

Если я понимаю, вы говорите о предпочтительной сети? – Guillaume

+0

Да, до сих пор я не понял, как получить (если только я просто не заметил, что это возможно). – smccloud

Смежные вопросы