Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

346
Visualizações
BLE con WinRT: acceso denegado al ejecutar "GetCharacteristicsForUuidAsync()" para la característica de escritura

Tal vez alguien pueda ayudarme porque tengo una situación realmente complicada con Bluetooth LE usando WinRT en Windows 10 (como se supone aquí: Bluetooth Low Energy en .Net (C#) ).

Necesito BLE dentro de una aplicación de escritorio clásica Win32. Nuestro código se ejecuta en una aplicación de marco de 32 bits utilizando el tiempo de ejecución de .NET (v4.0.30319, .NET Framework 4.6.2). Pude manejar todos los demás problemas (nombrar con fuerza algunos ensamblajes de NuGet (Shiny.BluetoothLE), ejecutar BluetoothAdapter.GetRadioAsync() en una DLL sustituta COM de 64 bits cuando se ejecuta en Windows de 64 bits), pero ahora estoy totalmente atascado con esto y aquí es donde:

El problema ocurre al ejecutar var result = await gattDeviceService.GetCharacteristicsForUuidAsync(uuid, BluetoothCacheMode.Cached); consulte aquí https://docs.microsoft.com/de-de/uwp/api/windows.devices.bluetooth.genericattributeprofile.gattdeviceservice.getcharacteristicsforuuidasync?view=winrt-20348 . Al obtener las características de lectura, result.Status es GattCommunicationStatus.Success y el resultado contiene la característica deseada. Pero, por supuesto, también necesito obtener la característica de escritura y SIEMPRE GattCommunicationStatus.AccessDenied . Por eso, el resultado NO contiene ninguna característica.

¿Alguien tiene idea de por qué es eso? Realmente necesito ayuda aquí porque estoy un poco perdido en este momento...

También traté de configurar AccessPermission a través del registro como se supone aquí, pero no tuve suerte...

PD: uso Windows 10 SDK Kit Build 20348 y, como se indicó anteriormente, es un proyecto C# .NET Framework 4.6.2 y todos nuestros ensamblajes tienen un nombre seguro debido al uso de GAC. Si me falta algo no dude en ponerse en contacto conmigo.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Para cualquiera que tropiece con el mismo problema estúpido... Esta es la solución:

En Windows, usando .NET Framework 4.6.1+ y las bibliotecas WinRT dentro de una aplicación que no es UWP, solo puede llamar UNA VEZ para obtener las características, sin importar si llama para todas a la vez a través gattDeviceService.GetCharacteristicsAsync(BluetoothCacheMode.Uncached) o para uno específico a través gattDeviceService.GetCharacteristicsForUuidAsync(uuid, BluetoothCacheMode.Cached) .

Cualquier llamada posterior fallará con GattCommunicationStatus.AccessDenied ... Así que mi solución ahora es recuperar todas las características a la vez y filtrarlas localmente.

¡Eso funcionó! De todos modos, esto es tan estúpido... ¡Me hizo perder mucho tiempo ahora! Como parece, tampoco necesito establecer ningún AccessPermission de acceso a través del registro.

PD: Te llamaré, si me tropiezo con otra situación difícil, solo para avisarte.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda