android - 如果传感器在启动前连接,FTDI 只能打开连接
问题描述
我正在使用这个 D2xx 驱动程序:http: //www.ftdichip.com/Android.htm
如果我在插入传感器时运行应用程序,我可以与传感器通信。但是,如果我在应用程序打开时拔下并重新插入传感器,我可以看到有 2 个设备,但 openByIndex 返回 null。这是一些代码。
清单部分
<uses-feature android:name="android.hardware.usb.host" />
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
<action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/usb_device_filter" />
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" android:resource="@xml/usb_device_filter" />
FTDI部分
# c is the main activity, FTDI is a class instantiated from mainactivity
try {
ftD2xx = D2xxManager.getInstance(c);
} catch (D2xxManager.D2xxException ex) {
ex.printStackTrace();
}
# devCount always returns correct amount of sensors
devCount = ftD2xx.createDeviceInfoList(c)
#This returns null if the sensor was unplugged and plugged back in again.
ftDevice = ftD2xx.openByIndex(c, 0);
PS。我认为这可能是某种权限错误,但我不确定如何修复它或如何在应用程序运行时插入传感器时向用户请求许可以使用传感器。有点像等价物。
public boolean isStoragePermissionGranted() {
if (Build.VERSION.SDK_INT >= 23) {
if (checkSelfPermission(getContext(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
== PackageManager.PERMISSION_GRANTED) {
Log.v("permission","Permission is granted");
return true;
} else {
Log.v("permission", "Permission is revoked");
ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
return false;
}
}
else { //permission is automatically granted on sdk<23 upon installation
Log.v("permission","Permission is granted");
return true;
}
}
解决方案
推荐阅读
- delphi - Delphi 10 首次加载时总是显示脚本错误和安全警报
- wordpress - WP .htaccess 删除自定义文件匹配
- java - 尝试使用 Collections.sort 对我的数组进行排序但没有运气
- php - Laravel 跳过查询未获取有效数据
- bash - 附加到有 X 但没有 Y 的行
- c - 在传递给函数和访问存储在 C 中的值时有效地使用结构的结构
- r - R 中的硒错误。无法读取未定义的属性“长度”
- solr - 使用 Solr,“添加提升”而不是使用“最大”提升的正确方法是什么
- xamarin - 框架点击手势 xamarin
- android - Kotlin - 接口中的只读属性