Я создаю приложение, которое будет устанавливать сеанс связи между двумя телефонами Android, поддерживающими UWB, без использования каких-либо механизмов OOB, таких как BLE, WiFi и т. д., но с жестким кодированием параметров.
Я инициирую сеанс как на контроллере, так и на управляющем, и когда я пытаюсь добавить управляющего в сеанс ранжирования, приложение вылетает.
val uwbManager = UwbManager.createInstance(applicationContext)
var job: Job?
val uwbDevice = UwbDevice.createForAddress("42:43")
val uwbChannel = UwbComplexChannel(5,9)
fun doSomethingWithThePosition(context: RangingPosition) {
println("Ranging position obtained: ")
}
fun handlePeerDisconnect(rangingResult: RangingResult.RangingResultPeerDisconnected) {
println("Peer has disconnected")
}
suspend fun startRanging() {
val controllerSession = uwbManager.controllerSessionScope()
//val coroutineScope = CoroutineScope(Dispatchers.IO + Job())
val partnerParameters = RangingParameters(
uwbConfigType = RangingParameters.CONFIG_UNICAST_DS_TWR,
sessionId = 0,
subSessionId = 0,
sessionKeyInfo = null,
subSessionKeyInfo = null,
complexChannel = uwbChannel,
peerDevices = listOf(uwbDevice),
updateRateType = RangingParameters.RANGING_UPDATE_RATE_AUTOMATIC
)
val sessionFlow = controllerSession.prepareSession(partnerParameters)
CoroutineScope(Dispatchers.Main.immediate).launch {
sessionFlow.collect {
when(it) {
is RangingResult.RangingResultPosition -> {
doSomethingWithThePosition(it.position)
}
is RangingResult.RangingResultPeerDisconnected -> handlePeerDisconnect(it)
}
}
}
try {
// ADD A CONTROLEE, PASS ITS UWB_ADDRESS
controllerSession.addControlee(uwbDevice.address)
} catch (e: Exception) {
Log.e(TAG, "An exception occured when adding a controlee", e)
}
}
var rangingResult = RangingResult.RangingResultPosition(device = uwbDevice, position = RangingPosition(
distance = null, elevation = null, azimuth = null, elapsedRealtimeNanos = 0
))
Пытался добавить управляющего с фиксированными параметрами, но получаю ошибку:
An exception occured when adding a controlee
java.lang.IllegalStateException: Please check that the ranging is active and theranging profile supports multi-device ranging.
at androidx.core.uwb.impl.UwbControllerSessionScopeImpl.addControlee(UwbControllerSessionScopeImpl.kt:47)
at androidx.core.uwb.impl.UwbControllerSessionScopeImpl$addControlee$1.invokeSuspend(Unknown Source:15)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
Хотя до этого я получаю этот журнал:
com.example.controllerrangingapp
Creating Gms Client session scope
Подробнее здесь: https://stackoverflow.com/questions/771 ... figuration
Ручная настройка характеристик диапазона UWB ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1732715882
Anonymous
Я создаю приложение, которое будет устанавливать сеанс связи между двумя телефонами Android, поддерживающими UWB, без использования каких-либо механизмов OOB, таких как BLE, WiFi и т. д., но с жестким кодированием параметров.
Я инициирую сеанс как на контроллере, так и на управляющем, и когда я пытаюсь добавить управляющего в сеанс ранжирования, приложение вылетает.
val uwbManager = UwbManager.createInstance(applicationContext)
var job: Job?
val uwbDevice = UwbDevice.createForAddress("42:43")
val uwbChannel = UwbComplexChannel(5,9)
fun doSomethingWithThePosition(context: RangingPosition) {
println("Ranging position obtained: ")
}
fun handlePeerDisconnect(rangingResult: RangingResult.RangingResultPeerDisconnected) {
println("Peer has disconnected")
}
suspend fun startRanging() {
val controllerSession = uwbManager.controllerSessionScope()
//val coroutineScope = CoroutineScope(Dispatchers.IO + Job())
val partnerParameters = RangingParameters(
uwbConfigType = RangingParameters.CONFIG_UNICAST_DS_TWR,
sessionId = 0,
subSessionId = 0,
sessionKeyInfo = null,
subSessionKeyInfo = null,
complexChannel = uwbChannel,
peerDevices = listOf(uwbDevice),
updateRateType = RangingParameters.RANGING_UPDATE_RATE_AUTOMATIC
)
val sessionFlow = controllerSession.prepareSession(partnerParameters)
CoroutineScope(Dispatchers.Main.immediate).launch {
sessionFlow.collect {
when(it) {
is RangingResult.RangingResultPosition -> {
doSomethingWithThePosition(it.position)
}
is RangingResult.RangingResultPeerDisconnected -> handlePeerDisconnect(it)
}
}
}
try {
// ADD A CONTROLEE, PASS ITS UWB_ADDRESS
controllerSession.addControlee(uwbDevice.address)
} catch (e: Exception) {
Log.e(TAG, "An exception occured when adding a controlee", e)
}
}
var rangingResult = RangingResult.RangingResultPosition(device = uwbDevice, position = RangingPosition(
distance = null, elevation = null, azimuth = null, elapsedRealtimeNanos = 0
))
Пытался добавить управляющего с фиксированными параметрами, но получаю ошибку:
An exception occured when adding a controlee
java.lang.IllegalStateException: Please check that the ranging is active and theranging profile supports multi-device ranging.
at androidx.core.uwb.impl.UwbControllerSessionScopeImpl.addControlee(UwbControllerSessionScopeImpl.kt:47)
at androidx.core.uwb.impl.UwbControllerSessionScopeImpl$addControlee$1.invokeSuspend(Unknown Source:15)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
Хотя до этого я получаю этот журнал:
com.example.controllerrangingapp
Creating Gms Client session scope
Подробнее здесь: [url]https://stackoverflow.com/questions/77143374/manual-uwb-ranging-specs-configuration[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия