Problema para obtener la lista de dispositivos HCI del controlador en Android
Pregunta
Tengo que trabajar con el dispositivo HCI de Android, por lo que trato de implementar un código simple para obtener el número de dispositivo Bluetooth:
...
struct hci_dev_req *dr;
int sk = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI);
if (sk < 0)
{
res = "invalid socket";
goto end;
}
struct hci_dev_list_req *dl = malloc(HCI_MAX_DEV * sizeof(*dr) + sizeof(*dl));
if (!dl)
{
res = "not enough memory";
goto end;
}
memset(dl, 0, HCI_MAX_DEV * sizeof(*dr) + sizeof(*dl));
dl->dev_num = HCI_MAX_DEV;
dr = dl->dev_req;
if (ioctl(sk, HCIGETDEVLIST, (void *) dl) < 0)
{
res = "unable to get device list";
goto end;
}
if(dl->dev_num == 0)
{
res = "device list is empty";
goto end;
}
...
Así que cada vez que recibí el mensaje "La lista de dispositivos está vacía". ¿Por qué puede ser? Solo los permisos que tengo en el programa los manifiestan: Bluetooth y Bluetooth_admin. Y ejecuto la aplicación como usuario simple y no como root.
TNX.
No hay solución correcta
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow