Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
android_threads [2023/10/17 13:35] enric_mieza_sanchez [APIs i JSON] |
android_threads [2024/10/21 13:53] (actual) enric_mieza_sanchez [Android i WebSockets] |
||
---|---|---|---|
Línia 156: | Línia 156: | ||
Ull, perquè si el server de **myip.com** rep moltes peticions seguides **acaba per bloquejar-se ja que es pensa que som atacants**. | Ull, perquè si el server de **myip.com** rep moltes peticions seguides **acaba per bloquejar-se ja que es pensa que som atacants**. | ||
- | Si veieu que amb el CURL no funciona, cerqueu una altra API, per exemple, cerqueu | + | Si veieu que amb el CURL no funciona, cerqueu una altra API. Cerqueu |
+ | $ curl https:// | ||
</ | </ | ||
Línia 173: | Línia 173: | ||
- No oblidis activar el permís Android per a accés a Internet o obtindràs una altra excepció. | - No oblidis activar el permís Android per a accés a Internet o obtindràs una altra excepció. | ||
</ | </ | ||
+ | |||
<WRAP todo> | <WRAP todo> | ||
Línia 179: | Línia 180: | ||
- Quan carreguem dades d' | - Quan carreguem dades d' | ||
+ | Anem a posar alguna acció gràfica que ens obligui a utilitzar el '' | ||
+ | |||
+ | Farem servir una '' | ||
+ | - Afegeix la '' | ||
+ | - Descarrega una imatge d' | ||
+ | String urldisplay = " | ||
+ | Bitmap bitmap; | ||
+ | try { | ||
+ | InputStream in = new java.net.URL(urldisplay).openStream(); | ||
+ | bitmap = BitmapFactory.decodeStream(in); | ||
+ | } catch (Exception e) { | ||
+ | Log.e(" | ||
+ | e.printStackTrace(); | ||
+ | } | ||
+ | </ | ||
+ | - Mostra la imatge al '' | ||
+ | - Utilitza el '' | ||
+ | |||
+ | Si et queda temps, crida la API randomfox (explicada mes amunt) i obtingues una imatge diferent cada cop, i mostra-la al '' | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | Per si et resulta avorrit, mes feina (exercici optatiu): | ||
+ | |||
+ | <WRAP todo> | ||
Anem a provar amb una GUI més ambiciosa: una '' | Anem a provar amb una GUI més ambiciosa: una '' | ||
- Afegeix una [[Android ListView]] al //layout//. | - Afegeix una [[Android ListView]] al //layout//. | ||
Línia 190: | Línia 217: | ||
\\ | \\ | ||
+ | |||
+ | ====== Android i WebSockets ====== | ||
+ | |||
+ | Per poder emprar la [[https:// | ||
+ | |||
+ | <file kotlin build.gradle.kts> | ||
+ | dependencies { | ||
+ | ... | ||
+ | implementation(libs.websocket) | ||
+ | ... | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | <file kotlin libs.versions.toml> | ||
+ | [versions] | ||
+ | ... | ||
+ | websocket = " | ||
+ | |||
+ | [libraries] | ||
+ | ... | ||
+ | websocket = { group = ' | ||
+ | |||
+ | </ | ||
+ | |||
+ | Recordem que per poder-se connectar a internet, cal [[https:// | ||
+ | |||
+ | <file xml AndroidManifest.xml> | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | |||
+ | Un cop fet tot això podrem emprar les biblioteques Java WebSockets al nostre codi: | ||
+ | |||
+ | <code java MainActivity.java> | ||
+ | import org.java_websocket.client.WebSocketClient; | ||
+ | import org.java_websocket.drafts.Draft_6455; | ||
+ | import org.java_websocket.handshake.ServerHandshake; | ||
+ | |||
+ | ... | ||
+ | |||
+ | WebSocketClient client = null; | ||
+ | URI location = " | ||
+ | |||
+ | try { | ||
+ | client = new WebSocketClient(new URI(location), | ||
+ | client.connect(); | ||
+ | } catch (URISyntaxException e) { | ||
+ | e.printStackTrace(); | ||
+ | System.out.println(" | ||
+ | } | ||
+ | | ||
+ | client.send(" | ||
+ | |||
+ | ... | ||
+ | </ | ||
+ | |||
+ | <WRAP tip> | ||
+ | Teniu més explicacions i exemples a la pàgina [[WebSockets Java]] d' | ||
+ | </ | ||