Problème avec l'obtention de la liste des appareils HCI de Driver dans Android
Question
Je dois travailler avec le périphérique HCI d'Android, donc j'essaie d'implémenter un code simple pour obtenir le nombre de périphériques 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;
}
...
Ainsi, chaque fois que je reçois le message "La liste des périphériques est vide". Pourquoi peut-il être? Seules les autorisations que j'ai dans le programme les manifestent: Bluetooth et Bluetooth_admin. Et j'exécute l'application en tant qu'utilisateur simple et non comme root.
Tnx.
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow