Autore Topic: android.permession.INTERNET non va!!  (Letto 819 volte)

Offline uelfox

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Tablet mediacom 8" MP842M
  • Sistema operativo:
    Win 7
android.permession.INTERNET non va!!
« il: 17 Aprile 2014, 16:04:45 CEST »
0
Buongiorno a tutti gli androiani,
sto cercando di scrivere una app. che deve accedere al un database sql su un pc nella net locale, ma sono incappato dell'eccezione
android.so.NetworkOnMainThreadException
Da giorni che sto cercando di risolvere la cosa, e sembrerebbe che è da imputarsi alla mancanza di permessi per accedere ad internet che manca alla mia app.
Ho quindi aggiunto nel file "AndroidManifest.xml" la seguente stringa:
<uses-permession android:name="android.permession.INTERNET" />

Ho poi provato a inserire un comando sotto l'evento pressione di un Button, il seguente codice:
Codice (Java): [Seleziona]
try{
   InetAddress test = InetAddress.getByName("www.google.it");
}
catch(Exception error){
   System.out.println("Errore: "+error.getMessage());
}

Compilo senza errori, ma quando il degub arriva sulla riga InetAddr...., mi genera la fastidiosa eccezione!!

Come faccio a risolvere?
Cosa mi sono dimenticato di abilitare o che accorgimento non ho fatto?

Spero che mi possiate aiutare.
Grazie
 


Offline LinkOut

  • Utente normale
  • ***
  • Post: 269
  • Respect: +37
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:android.permession.INTERNET non va!!
« Risposta #1 il: 17 Aprile 2014, 16:49:36 CEST »
0
Secondo me dovresti provare a controllare prima di fare il try se c'è o meno connettività internet.

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:android.permession.INTERNET non va!!
« Risposta #2 il: 17 Aprile 2014, 17:23:24 CEST »
0
android.so.NetworkOnMainThreadException
tradotto in italiano è:
android.so.OperazioneDiReteSulThreadDellaUIException

Non è un problema di permessi, stai facendo una chiamata di rete (quindi bloccante), su un thread che deve rimanere non bloccato.
Puoi usare async task, thread diretti, service o ci sono un sacco di librerie per fare ciò.
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline uelfox

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Tablet mediacom 8" MP842M
  • Sistema operativo:
    Win 7
Re:android.permession.INTERNET non va!!
« Risposta #3 il: 21 Aprile 2014, 15:13:35 CEST »
0
Grazie.
Ho risolto mettendo il tutto in un asynctask. Poi aggiungo il codice funzionante a beneficio del forum.

Ora xò ho un'altro problema. Con connessione al mio DB su SQL, ma per questo apro un'altro post, questo: http://www.anddev.it/index.php?topic=13872.msg70983#msg70983
« Ultima modifica: 21 Aprile 2014, 18:40:52 CEST da uelfox »

Offline uelfox

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Tablet mediacom 8" MP842M
  • Sistema operativo:
    Win 7
Re:android.permession.INTERNET non va!!
« Risposta #4 il: 01 Maggio 2014, 23:27:12 CEST »
0
Ciao raga, finalmente ho trovato la soluzione su come collegarsi al mio db su un server SQL.
Ho utilizzato la libreria jtds, ma la versione 1.3.0, che non è l'ultima, ma quella precedente.
Dopo aver importato la libreria nella cartella "libs" dell'IDE, ho utilizzato questo codice:
Codice: [Seleziona]
try{
   Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
   db = DriverManager.getConnection("jdbc:jtds:sqlserver://192.168.0.132/nomedb;user=sa;password=pass;instanceName=SQLEXPRESS");
   return 1;
}
catch (Exception e){
   return 0;
}


Offline giuseppesorce

  • Utente junior
  • **
  • Post: 90
  • Respect: +6
    • Google+
    • warpmobile_it
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6,Nexus 5,Nexus 4, Galaxy Nexus, Nexus s, Nexus One,Htc Wildfire S, Nexus 7... etc
  • Sistema operativo:
    Ubuntu 14.04
Re:android.permession.INTERNET non va!!
« Risposta #5 il: 13 Maggio 2014, 17:51:38 CEST »
0
Sarebbe meglio non accedere direrramente al DB ma creare un' intefaccia con php, jsp etc.. magari con una formattazione stringa di tipo json
The code is joy and passion but it has a high degree of suffering

Offline uelfox

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Tablet mediacom 8" MP842M
  • Sistema operativo:
    Win 7
Re:android.permession.INTERNET non va!!
« Risposta #6 il: 14 Maggio 2014, 08:35:24 CEST »
0
X ora non ho problemi con l'uso del metodo utilizzando jtds...
Cmq, a titolo informativo e per amore dell'argomento, hai una bozza di come potrebbe essere il codice che bisognerebbe utilizzare per connettersi ad un db sql?

Offline giuseppesorce

  • Utente junior
  • **
  • Post: 90
  • Respect: +6
    • Google+
    • warpmobile_it
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6,Nexus 5,Nexus 4, Galaxy Nexus, Nexus s, Nexus One,Htc Wildfire S, Nexus 7... etc
  • Sistema operativo:
    Ubuntu 14.04
Re:android.permession.INTERNET non va!!
« Risposta #7 il: 14 Maggio 2014, 08:57:29 CEST »
0
Allora lato Android devi chiamare una pagina php, un web service che a sua volta fa la connessione e la query al db.

Dipende dalla tecnologia puoi usare linguaggi come php, C#, jsp etc
The code is joy and passion but it has a high degree of suffering