Per aggiungere la libreria al progetto si edita build.gradle(progetto) aggiugendo la riga in giallo
allprojects { repositories { google() jcenter() maven { url "https://jitpack.io" } }}
e si aggiunge la libreria indicata dalla riga in giallo
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' implementation 'com.github.felHR85:UsbSerial:6.1.0' implementation("com.squareup.okhttp3:okhttp:4.5.0")}
Per prima cosa si aggiunge il permesso di accesso ad Internet nel Manifest
<uses-permission android:name="android.permission.INTERNET" />
In seguito si crea un directory xml in res e si crea un nuovo file XML denominato network_security_config.xml con i permessi di accesso alla rete
Per esempio qui si abilita il traffico HTTP (HTTPS e' default) verso tutti i domini
network_security_config.xml
-----------------------------------------
<?xml version="1.0" encoding="utf-8"?><network-security-config xmlns:android="http://schemas.android.com/apk/res/android"> <base-config cleartextTrafficPermitted="true" /> </network-security-config>-----------------------------------------
Si torna al Manifest e si aggiunge la riga in giallo
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:networkSecurityConfig="@xml/network_security_config" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true"
il metodo standard per implementare la chiamata e' creare una classe
public static class senddata { OkHttpClient client = new OkHttpClient(); String run(String url) throws IOException { Request request = new Request.Builder() .url(url) .build(); try (Response response = client.newCall(request).execute()) { return response.body().string(); } } }
e poi chiamare il metodo per esempio in GET
senddata invio = new senddata();try { String response = invio.run("http://XXX.XXXX.XXX.XXX/seriale/index.php?stringa="+data.toString()+"&batteria="+percentage);} catch (IOException e) { e.printStackTrace();}