1、我用的開發IDE是 android studio APP_PLATFORM android-23 進行編譯的,公司做工業相機,想通過uvc協議進行上位機和設備進行通信。
2、各種庫
[armeabi-v7a] Install : libGPCamera.so => libs/armeabi-v7a/libGPCamera.so
[armeabi-v7a] Install : libjpeg-turbo1500.so => libs/armeabi-v7a/libjpeg-turbo1500.so
[armeabi-v7a] Install : libusb100.so => libs/armeabi-v7a/libusb100.so
[armeabi-v7a] Install : libuvc.so => libs/armeabi-v7a/libuvc.so
3、在我執行debug的時候 呼叫libusb的 libusb_get_device_list 取獲取不到設備。日志如下:

4、我的代碼如下
UINT CGsUvcDeviceSearch::LibUsbInit()
{
LOGI("CGsUvcDeviceSearch::LibUsbInit m_nStatus=[%d]", m_nStatus);
int ret = LIBUSB_SUCCESS;
//開啟會話
ret = libusb_init(&m_pUsbCtx);
if (LIBUSB_SUCCESS != ret)
{
LOGI("failed to initialise libusb: %s\n", libusb_error_name(ret));
return EXIT_FAILURE;
}
//非0 支持 ,0 不支持
ret = libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG);
if (LIBUSB_SUCCESS == ret)
{
LOGI("Hotplug capabilites are not supported on this platform\n");
LOGI("this version's libusb doesn't support hotplug\n");
libusb_exit(m_pUsbCtx);
return EXIT_FAILURE;
}
int devIdx = -1;
struct libusb_device *pUsbDev = NULL;
ret = libusb_get_device_list(m_pUsbCtx, &m_ppUsbDevs);
if(LIBUSB_SUCCESS != ret)
{
LOGI("Failed to get device list on iteration %d (%p)", m_nTotalDeviceSum, m_ppUsbDevs);
return EXIT_FAILURE;
}
while ((pUsbDev = m_ppUsbDevs[++devIdx]) != NULL ) //這里不會進來。插入設備,然后啟動debug模式。
{
//printdev(pUsbDev);
m_nTotalDeviceSum++;
LOGI("####################################libusb_get_device_list Find Device~~~ m_nTotalDeviceSum=[%d] m_ppUsbDevs=[%p]\n",m_nTotalDeviceSum, m_ppUsbDevs);
}
//m_nStatus = UVC_DEVICE_STATUS_START;
LOGI("LibUsbInit is suc...m_nStatus = UVC_DEVICE_STATUS_START\n\n");
return EXIT_SUCCESS;
}
,之前沒有做過安卓開發,希望求助下大咖需要怎么解決???
uj5u.com熱心網友回復:
有大咖幫忙看下問題嗎uj5u.com熱心網友回復:
有人幫忙看看嘛轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/70335.html
標籤:智能硬件
