2011-10-13 7 views
7

Ho un problema davvero fastidioso. Quello che succede è che ho un'applicazione che usa socket nativi per inviare dati su TCP. Quando lancio la mia applicazione per la prima volta e invio i dati tramite i socket, non viene eseguito nulla. Tuttavia, se poi esco dal processo e lo riavvio e quindi inviare di nuovo, funziona. Stessa cosa se apro il browser o qualcosa del genere prima di avviare la mia app per la prima volta dopo la modalità di sospensione.Android - socket nativi che non rimuovono 3G-sleep-mode al primo tentativo

Come faccio a 'forzare' il 3G a uscire dalla modalità di sospensione prima di effettuare la chiamata al codice nativo?

EDIT: Ho già provato con PowerManager.

+0

Hai provato questo su qualche altro dispositivo? Ho alcuni problemi correlati con la presa UDP nativa sul mio HTC Desire, ma nessun problema su diversi telefoni Samsung Galaxys, Huawei o Sony Ericsson. – Andy

+0

Ho provato questo su HTC Desire e HTC EVO 3d. Entrambi hanno questo problema – KaiserJohaan

+0

Forse aspettati che il primo tentativo fallisca, e poi riprova un secondo o due dopo? Oppure, invia un dummy HttpGetRequest a www.example.com, ad esempio, per riattivare i livelli di rete prima di provare il tuo vero codice di rete. –

risposta

0

Prova a chiamare startUsingNetworkFeature (INT NetworkType, caratteristica String) In una ConnectivityManager e attendere che sia disponibile prima di vincolare il proprio prese ect ......

Android Documentation

0

Mi piacerebbe dare il API ConnectivityManager requestRouteToHost(int networkType, int hostAddress) a provare.

Problemi correlati