private val _getListTrustedDeviceState: MutableStateFlow =
MutableStateFlow(BaseUIState.Idle)
val getListTrustedDeviceState: StateFlow =
_getListTrustedDeviceState.asStateFlow()
private val _getTrustedDeviceByDeviceKey: MutableStateFlow =
MutableStateFlow(BaseUIState.Idle)
val getTrustedDeviceByDeviceKey: StateFlow =
_getTrustedDeviceByDeviceKey.asStateFlow()
fun getListTrustedDevice() {
viewModelScope.launch {
_getListTrustedDeviceState.value = BaseUIState.Loading
val accessToken = SharedPreferencesUtils().getDataFromSharedPreferences(
context, SharedPrefKey.USER_SECTION
)?.accessToken
if (accessToken.isNullOrBlank()) {
_getListTrustedDeviceState.value = BaseUIState.Error("Access token is missing")
return@launch
}
userRepository.getListTrustedDevices(accessToken).onSuccess { devices ->
_getListTrustedDeviceState.value = BaseUIState.Success(devices)
LogUtil.d("getListTrustedDevice: ${devices.toJson()}")
}.onFailure { error ->
_getListTrustedDeviceState.value = BaseUIState.Error(error.message ?: "An unknown error occurred")
}
}
}
fun getTrustedDeviceByDeviceKey(){
viewModelScope.launch {
_getTrustedDeviceByDeviceKey.value = BaseUIState.Loading
val accessToken = SharedPreferencesUtils().getDataFromSharedPreferences(
context, SharedPrefKey.USER_SECTION
)?.accessToken
val deviceKey = extractDataFromToken(accessToken.toString(), "device_key")
LogUtil.d("deviceKey: $deviceKey")
if (accessToken.isNullOrBlank()) {
_getTrustedDeviceByDeviceKey.value = BaseUIState.Error("Access token is missing")
return@launch
}
userRepository.getDevicesByKey(accessToken,deviceKey.toString()).onSuccess { devices ->
_getTrustedDeviceByDeviceKey.value = BaseUIState.Success(devices)
LogUtil.d("getTrustedDeviceByDeviceKey: ${devices.toJson()}")
}.onFailure { error ->
_getTrustedDeviceByDeviceKey.value = BaseUIState.Error(error.message ?: "An unknown error occurred")
}
}
}
private fun extractDataFromToken(token: String, key: String): String? {
try {
val payloadPart = token.split(".")[1]
val decodedPayload = String(Base64.decode(payloadPart, Base64.URL_SAFE))
val payloadJson = JSONObject(decodedPayload)
return payloadJson.optString(key)
} catch (e: Exception) {
e.printStackTrace()
}
return null
}
Я работаю над приложением для Android и использую Kotlin с шаблоном репозитория. У меня есть две функции, getListTrustedDevice и getTrustedDeviceByDeviceKey, которые вызывают API для получения списка доверенных устройств и сведений об устройстве по ключу устройства.
Проблема в том, что при вызове этих методов я получаю пустое сообщение. ответы или данные об устройстве отсутствуют, хотя я ожидаю, что устройства будут присутствовать. Мне интересно, может ли проблема быть связана с ключом устройства или какой-либо другой частью запроса.
private fun extractDataFromToken(token: String, key: String): String? { try { val payloadPart = token.split(".")[1] val decodedPayload = String(Base64.decode(payloadPart, Base64.URL_SAFE)) val payloadJson = JSONObject(decodedPayload) return payloadJson.optString(key) } catch (e: Exception) { e.printStackTrace() } return null } [/code] Я работаю над приложением для Android и использую Kotlin с шаблоном репозитория. У меня есть две функции, getListTrustedDevice и getTrustedDeviceByDeviceKey, которые вызывают API для получения списка доверенных устройств и сведений об устройстве по ключу устройства. Проблема в том, что при вызове этих методов я получаю пустое сообщение. ответы или данные об устройстве отсутствуют, хотя я ожидаю, что устройства будут присутствовать. Мне интересно, может ли проблема быть связана с ключом устройства или какой-либо другой частью запроса.
Я делаю приложение для Android для связи BLE с физическим устройством.
Целевая версия SDK - 32 - Min SDK версия - это 23
Первый этап, очевидно, сканирует для рекламных устройств. Он отлично работает с Android 6, 10 и 12. Я застрял в этой ситуации,...
Я пытаюсь установить приложение Android на свой новый Nexus 10. У меня есть файл .apk. Я загрузил Android SDK, установил «Инструменты Android SDK», «Инструменты платформы Android SDK» и драйвер Google USB. Я проверил настройку своего Nexus 10 на...
Я работаю с InfluxDB для запроса данных из сегмента под названием «Эргометр». Я хочу получить список уникальных идентификаторов устройств (велосипед L, велосипед M, велосипед R), хранящихся в виде тега устройства. Однако мой запрос всегда возвращает...