Я пытаюсь отправить ISOCHRONOUS URB в Android NDK в C.
usbdevfs_urb& urbRequest = *(usbdevfs_urb*)malloc( 384 );
urbRequest.type = USBDEVFS_URB_TYPE_ISO;
urbRequest.endpoint = mpEndpoint->GetEndpointAddress();//mpEndpoint->GetEndpointIndex();
urbRequest.status = 0;
urbRequest.flags = USBDEVFS_URB_ISO_ASAP;
urbRequest.buffer = pData;
urbRequest.buffer_length = 0;
urbRequest.actual_length = 0;
urbRequest.start_frame = 0;
urbRequest.number_of_packets = 1;
urbRequest.error_count = 0;
urbRequest.signr = SIGRTMIN;
urbRequest.usercontext = pData;
usbdevfs_iso_packet_desc* pIsoPacketDesc = &urbRequest.iso_frame_desc[0];
pIsoPacketDesc->length = 384;
pIsoPacketDesc->actual_length = 0;
pIsoPacketDesc->status = 0;
ioctl( fd, USBDEVFS_SUBMITURB, &usbRequest);
В приведенном выше коде я хочу установить сигнал SIGRTMIN для urbRequest.signr.Так что я могу получить сигнал SIGRTMIN по завершении URB и могу вызвать REAP URB после
Но в Android я вообще не получаю сигнал SIGRTMIN.Вместо этого мое приложение убивается без каких-либо исключений
. Можно ли использовать сигнал SIGRTMIN для отправки URB в Android?
Примечание. Я пытался использовать сигналы SIGUSR1 и SIGUSR2, но ART перехватывает эти сигналы.
есть ли в любом случае выполнить изохронную, прерывистую, массовую передачу (с использованием неблокирующего асинхронного ввода-вывода) в Android?