如今许多液晶电视都有USB端口,因此您可以插入相机,它就成了电视上的相机库.
我想写一个画廊程序,当插入电视时,它将开始循环通过USB设备上的图像.我该怎么做?是否可以编写某种可以单独在USB设备上运行的OS /应用程序?
我有一个C#WPF应用程序,允许用户通过从Windows资源管理器中拖入文件并将其放在主应用程序窗口中来导入文件.
从物理磁盘拖动文件时它可以正常工作,但是当从连接的设备(如iPhone或通过USB连接的摄像头)拖动文件时,我无法识别窗口的Drop中的dragEventArgs.Data.GetFormats()返回的任何数据格式处理程序.
任何人都喜欢分享一些提示或指出一个很好的例子或演绎如何以这种方式从C#/ .NET中的"虚拟"文件系统读取/导入文件?
谢谢,
迪伦
我正在尝试编写一个应用程序,将特定的USB字符串描述符(USB大容量存储设备)与其卷或bsd名称相关联.
因此代码遍历所有连接的USB设备,获取字符串描述符并从其中一个中提取信息.我想获得这些USB设备的卷名.我找不到合适的API来做到这一点.我试过这样做:
DASessionRef session = DASessionCreate(kCFAllocatorDefault);
DADiskRef disk_ref = DADiskCreateFromIOMedia(kCFAllocatorDefault,
session,
usb_device_ref);
const char* name = DADiskGetBSDName(disk_ref);
Run Code Online (Sandbox Code Playgroud)
但是DADiskCreateFromIOMedia函数返回nil,我假设我传递的usb_device_ref与函数期望的io_service_t不兼容.
那么如何获取USB设备的卷名?
我可以使用位置ID来做到这一点吗?
谢谢阅读.-L
FOO_Result result = FOO_SUCCESS;
mach_port_t master_port;
kern_return_t k_result;
io_iterator_t iterator = 0;
io_service_t usb_device_ref;
CFMutableDictionaryRef matching_dictionary = NULL;
// first create a master_port
if (FOO_FAILED(k_result = IOMasterPort(MACH_PORT_NULL, &master_port))) {
fprintf(stderr, "could not create master port, err = %d\n", k_result);
goto cleanup;
}
if ((matching_dictionary = IOServiceMatching(kIOUSBDeviceClassName)) == NULL)
{
fprintf(stderr, "could not create matching dictionary, err = %d\n", k_result); …Run Code Online (Sandbox Code Playgroud) 我尝试在三星Galaxy中调试时遇到问题.我已按照Android开发者中的说明操作并下载了三星USB驱动程序,但当我到达更新驱动程序时,我不知道要选择哪个文件夹.SAMSUNG/USB DRIVERS中有26个文件夹.
另外,我在其他帖子中看过编辑android-sdk-windows\usb_driver\android_winusb.inf的解决方案,但是那个文件夹在哪里呢?
我的操作系统是WinXP SP3.
我正在使用usbmanager类来管理我的android 4.1.1机器上的USB主机.对于几百个事务似乎都很好,直到(在900次事务之后)打开设备失败,返回null无例外.使用分析器似乎不是内存泄漏的问题.
这是我从主要活动初始化通信的方式(这样做一次):
public class MainTestActivity extends Activity {
private BroadcastReceiver m_UsbReceiver = null;
private PendingIntent mPermissionIntent = null;
UsbManager m_manager=null;
DeviceFactory m_factory = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mPermissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
m_UsbReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action)) {
UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (device != null) {
// call your method that cleans …Run Code Online (Sandbox Code Playgroud) 我有一堆USB串口设备(准确地说是这些:http://plugable.com/products/PL2303-DB9),如果可能的话,我想在拔出插头时"跟踪"它们重新插入事件(即使重新插入事件是针对不同的USB端口).
驱动程序似乎从其USB位置创建了BSD dialin/callout/tty设备名称,但这取决于您将其插入的USB端口.
看着插入两个独立的USB端口的两个相同的设备之间由于IOKit属性词典,唯一的区别是在sessionID,USB Address,locationID,portNum或在出现的值从所导出的locationID.sessionID似乎每个会话都会发生变化(即每次拔出/重新插入后都会有所不同).
由于这些设备都返回0了iSerialNumber,我觉得我基本上这里拧,但我想我会折腾出在这里,看看是否有人有任何想法.是否有一些通用设施可以将一些"令牌"写入我可以读回的USB设备?我在USB标准的快速浏览/谷歌搜索中没有看到任何内容,但是像这样的设施肯定会做到这一点......
有任何想法吗?
我的应用程序用于UsbManager与USB摄像头通信.某些设备没有USB支持.这些返回null的(UsbManager)context.getSystemService( Context.USB_SERVICE ),否则将抛出一个NoSuchMethodError枚举设备时例外.我可以检测到这两个并正确显示消息.不幸的是,一些没有检测到USB设备的机器人也没有引起这些问题.他们只返回一个空的USB设备列表.如何才能正确检测到该系统不支持USB OTG?
我使用Nexus 5作为我的第一个Android应用程序的测试设备.当我通过USB将手机连接到我的PC时,它会在浏览器中弹出,我可以访问设备上的不同文件和文件夹(就像设备是USB记忆棒一样......).
我认为这些文件和文件夹代表External Storage我的应用程序存储的每个文件/文件夹External Storage也可以通过USB访问.
External Storage在我的应用程序中创建文件/文件夹没有问题,这些文件在可以通过USB访问的文件和文件夹中不可见:
public static File getAppPuplicExternalStorageDir() {
File appDir = null;
try {
appDir = new File(Environment.getExternalStorageDirectory(), "MyApp");
appDir.mkdirs();
}
catch (Exception e) { }
return appDir;
}
...
File noMediaFile = new File(getAppPuplicExternalStorageDir(), ".nomedia");
noMediaFile.createNewFile();
...
Run Code Online (Sandbox Code Playgroud)
这段代码完美无缺.我可以测试文件是否存在,删除文件,创建其他文件等没有任何问题.
当我检查appDir时,它有路径/storage/emulated/0/MyApp/.一切正常,除了通过USB看不到这个文件夹.
外部存储和通过USB访问的文件/文件夹之间有区别吗?用户应该能够将文件下载到他的PC.如何设法通过USB显示我的文件?
我的Nexus 5X在Win7机器中没有检测到adb,但它正在Ubuntu机器上运行.我在Win7上有最新的驱动程序(来自Android SDK管理器).它会检测为MTP或相机设备,但不会检测为adb.
我正在开发通过USB与Tektronix TDS2002示波器交互的C ++ / Qt应用程序。示波器显示为“ USB测试和测量设备(IVI)”。
当前,我使用示波器供应商提供的TekVISA库。它可以工作,但是它庞大,古老,越野车且维护不善。因此,我想绕过该库并直接连接设备。
到目前为止,我已经找到了这个简单的库:https : //github.com/xyphro/WinUsbTmc正是我在寻找的东西,但是它使用libusb,它需要安装一些设备过滤器,并且建议进行更多开发工具比客户解决方案。您对此有经验吗?
与Windows / C ++ / Qt中的USB测试和测量设备交互的最简单方法是什么?
谢谢您的建议 :)