Problema con l'ottenimento dell'elenco dei dispositivi HCI dal driver in Android
Domanda
Devo lavorare con il dispositivo HCI di Android, quindi provo ad implementare un codice semplice per ottenere il numero di dispositivi 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;
}
...
Quindi ogni volta che ho ricevuto il messaggio "Elenco dei dispositivi è vuoto". Perché può essere? Solo le autorizzazioni che ho nel programma le manifestano: Bluetooth e Bluetooth_admin. E eseguo l'applicazione come utente semplice e non come root.
Tnx.
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow