programatik olarak programlanmasının şu anda USB çalışma modunu tanımlamak için bir yolu var mı?USB iletişim modunu programlı olarak tanımlamak mümkün mü?
Aygıtın Host
, Device
veya Accessory
modlarında olması durumunda dönecek bazı işlevler.
programatik olarak programlanmasının şu anda USB çalışma modunu tanımlamak için bir yolu var mı?USB iletişim modunu programlı olarak tanımlamak mümkün mü?
Aygıtın Host
, Device
veya Accessory
modlarında olması durumunda dönecek bazı işlevler.
En iyi cevap değil, ancak bir UsbManager'ınız olduğunda bunu anlayabilirsiniz. Genellikle bu UsbManager inanıyorum bir Bağlamını kullanılarak oluşturulur, ancak umarım bu durumda bir UsbManager örneği, m
alabilmeniz için modları arasında geçiş gibi görünüyor: aksesuar modu için
UsbManager m = createManagerSomehow
, bu sadece birine sahiptir geri aramak. Bu bir tane döndürürse, o zaman onun Aksesuar olduğunu bilirsiniz. Böyle
m.getAccessoryList()
Yani düşünüyorum somehting işe yarayabilecek:
if(m.getAccessoryList().size() > 0)
accessoryMode = true;
Ve Host için
, bir UsbDevicedevice
veya Dize
deviceName
varsa aynı UsbManager
m
fonksiyonunu kullanabilirsiniz Bu cihazı içerip içermediğine bakın.
if(m.getDeviceList().containsValue(device))
hostMode = true;
veya
if(m.getDeviceList().containsKey(deviceName))
hostMode = true;
ve
Device
ne yukarıdakilerden hiçbiri doğruysa, ama o zaman bu sadece bir aygıt olduğunu biliyoruz hakkında bilmiyorum. Aşağıdaki bu boole değişkenine ihtiyacınız yok çünkü diğer ikisine sahipsin. Bu, benim açıklamalarımın devlet mantığıyla yardımcı olması için burada.
if(!hostMode && !accessoryMode)
deviceMode = true
Bu yardımcı olur umarım. Daha fazla dokümantasyon için UsbManager'a bakın ve sadece Host ve Aksesuar için sayfayı arayın.
http://developer.android.com/reference/android/hardware/usb/UsbManager.html
NOT: Eğer yorumunuzda modlar arasında geçiş derken biraz karıştı. Yukarıda yaptığım Aksesuar çağrısı ile çakışıyor ve işe yaramayabilir, ancak ne yapardım (eğer deviceMode
'a ihtiyacınız yoksa), eğer usb cihazının bir HOST modu olup olmadığını kontrol edip, uygulama modunda olduğunu bilmiyorsanız ...
Cihazın USB çalışma modunu mu kastediyorsunuz? – Aify
@Aify, yes. Android'in USB çalışma modunu değiştirebileceği bir durum var ve bunu tanımlamam gerekiyor. – Machado