<uses-permission android:name="android.permission.INTERNET"/>
suspendimplementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.11.0")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.11.0")implementation("com.squareup.okhttp3:okhttp:5.5.0")
implementation("com.squareup.okhttp3:logging-interceptor:5.5.0")implementation("com.squareup.retrofit2:converter-gson:3.0.0")implementation("com.squareup.retrofit2:retrofit:3.0.0")@GET("/status")
suspend fun readStatus(@Query("identifier") identifier: String): LedStatus
@POST("/status")
suspend fun writeStatus(@Body status: LedStatus): LedStatusApiService.kt (l'interface et le builder pour la partie HTTP)LedStatusLedStatus
Télécharger le fichier LedStatus.java
(À ranger dans le package ….data.modele)
Télécharger le fichier ApiService.kt
(À ranger dans le package ….data.service)
BuildConfig.URI_REMOTE_SERVER ?

android {
defaultConfig {
buildConfigField("String", "URI_REMOTE_SERVER", "\"http://IP.DE.VOTRE.ESP\"")
// …
}
buildFeatures {
buildConfig = true
}
}http:// ?Bloqué par défaut depuis Android 9.
android:usesCleartextTraffic="true" sur la balise <application> du Manifest.
ApiService.instanceCoroutineScope(Dispatchers.IO).launch {
runCatching {
val readStatus = ApiService.instance.readStatus(ledStatus.identifier)
ledStatus.setStatus(readStatus.status)
setVisualState()
}
}On en parle non ?