2012-06-11 32 views
7

Sto provando a scrivere un widget in modo da poter abilitare/disabilitare LTE sul mio Verizon Galaxy Nexus senza entrare nel menu delle impostazioni per farlo. Tuttavia, devo ancora capire come determinare se LTE è effettivamente attivato. Posso determinare se il mio telefono ha attualmente un segnale LTE o un segnale EVDO, ma non se LTE è abilitato quando il telefono ha un segnale EVDO.Determina se LTE è attivato?

Qualcuno ha qualche suggerimento su dove cercare nel Riferimento degli sviluppatori Android? Ho provato TelephonyManager & ConnectivityManager ma finora non funziona per me.

risposta

0

Hai provato questo?

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

Al momento ho LTE abilitato sul mio cellulare, ma sono su un Connessione CDMA, che restituisce false. Questo è quello che mi è rimasto bloccato in precedenza. "Dovrebbe" funzionare se si pensa logicamente, ma funziona solo se si dispone di una connessione LTE attiva. Direttamente dal Riferimento per gli sviluppatori Android "public int getNetworkType() Restituisce una costante che indica la tecnologia radio (tipo di rete) attualmente in uso sul dispositivo per la trasmissione dei dati." – smccloud

+0

È possibile controllare ['ConnectivityManager'] (http://developer.android.com/reference/android/net/ConnectivityManager.html), utilizzando una combinazione di' getNetworkInfo (ConnectivityManager.TYPE_MOBILE) 'e' NetworkInfo.getTypeName () ', anche se non sono sicuro se questo ti porterà quello che vuoi. –

+0

NetworkInfo.getTypeName() restituisce "MOBILE" o "WIFI". Si potrebbe pensare che Google aggiungerebbe il giusto supporto per LTE come hanno fatto WiMAX da quando WiMAX è morto e persino Sprint è passato a LTE. Inoltre, ConnectivityManager.getNetworkInfo (ConnectivityManager.TYPE_MOBILE) .toString() restituisce "06-11 15: 33: 32.239: W/LTE Toggle Widget (12811): NetworkInfo: tipo: mobile [CDMA - eHRPD], stato: CONNECTED/CONNECTED , motivo: simLoaded, extra: VZWINTERNET, roaming: false, failover: false, isAvailable: true "in LogCat. – smccloud

0

Vedi questo link: http://developer.android.com/reference/android/telephony/TelephonyManager.html e su questo si può trovare un esempio: http://developer.android.com/training/efficient-downloads/connectivity_patterns.html

Devi usare la seguente funzione: TelephonyManager.getNetworkType()

+0

Sto usando TelephonyManager.getNetworkType(), ma restituisce CDMA anche se LTE è abilitato ma ho solo una connessione dati CDMA. Per me non ha senso che non ci sia un modo semplice per determinare se LTE è abilitato (anche se non è la connessione attiva corrente). Direttamente dal Riferimento per gli sviluppatori Android "public int getNetworkType() Restituisce una costante che indica la tecnologia radio (tipo di rete) attualmente in uso sul dispositivo per la trasmissione dei dati." – smccloud

+0

Se ho capito, parli della rete preferita? – Guillaume

+0

Sì, che finora non ho capito come ottenere (a meno che non l'abbia semplicemente trascurato, che è possibile). – smccloud