android檢測usb設備
Ⅰ android4.2.2 查找USB設備
4.2隱藏了~1、找到「設置」圖標,進入~ 2、點擊「關於手機」 3、拉到屏幕最下方,找到「版本號」,猛擊5-7下(有時只要點擊一下就行) 4、猛擊過後,如果出現「您現在處於開發者模式」,說明您猛擊成功;如果沒有,請繼續猛擊,直至出現為止 5、再回到「設置」頁面,您就可以找到「{}開發者選項」了!(大約是隱藏彩蛋神馬的吧,咳咳……)
Ⅱ 如何檢測,如果Android有完整的USB支持或不
1.如果只是手機的USB硬體是OTG,支持USB Host
但是手機中android系統是低於3.1版本,或者裡面沒有對應的USB驅動的
則都無法使用USB Host功能,都無法外接USB 鍵盤之類的USB設備。
2.本身手機的USB硬體就不是OTG的,就不支持USB Host
即使你手機中Android版本再高,比如是4.1,那也是白搭,也沒法用USB Host的。
3.只有當你的手機本身的USB硬體是OTG的,且Android系統是3.1版本之上的,且系統的固件(ROM鏡像)裡面是有對應的驅動的,才能真正使用上USB Host。
4.Android中,USB方面,分兩種模式:USB accessory== USB Device == Android手機作為一個Device設備;把手機連到電腦上,電腦就是Host,手機就是Device,手機就是類似於U盤,可以從主機電腦中操作U盤,拷貝U盤資料了.此種模式,可以說所有手機都支持,就像都可以當做一個U盤接到電腦上一樣;USB host == Android手機作為一個Host主機.Android手機就是主控制器,可以外接/外掛,USB滑鼠,USB鍵盤,U盤,USB攝像頭,游戲手柄等被控制的設備.此種USB Host模式,需要軟硬體都支持才能工作:硬體:確保手機本身的USB模塊是OTG的,即USB的硬體是那種,既可以被配置為Device的,也可以被配置為Host的.與此相對應的是,有些USB的硬體模塊,是固定的USB Device,或者是USB Host.比如普通的U盤中的USB模塊,就是固定的USB Device.比如你把U盤接到電腦上的那個USB介面,就是主板上的USB Host的介面,可以掛載你的U盤.與此類似的是,有些數碼相機,就是USB OTG的.即可以當做U盤接到電腦上,電腦上就可以把相機裡面照片拷貝出來了.也可以當做USB 主機,連接USB的列印機,把照片傳輸到列印機上,列印出來.軟體Android系統,必須是Android 3.1(API Level 12).本身手機常見給你預裝的Android系統,本身是有對應的USB(OTG)的驅動.
Ⅲ 如何查看USB方式連接Android設備的外接設備信息
這里主要介紹了Android中查看USB連接的外接設備信息的代碼實例,可以參考下
1,USB存儲設備(如:U盤,移動硬碟):
//USB存儲設備 插拔監聽與 SD卡插拔監聽一致。
代碼如下:
private USBBroadCastReceiver
mBroadcastReceiver;
IntentFilter iFilter = new IntentFilter();
iFilter.addAction(Intent.ACTION_MEDIA_EJECT);
iFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);
iFilter.addAction(Intent.ACTION_MEDIA_REMOVED);
iFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
iFilter.addDataScheme("file");
mBroadcastReceiver = new
USBBroadCastReceiver();
registerReceiver(mBroadcastReceiver,
iFilter);
private class USBBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if
(action.equals(Intent.ACTION_MEDIA_EJECT)) {
//USB設備移除,更新UI
} else if
(action.equals(Intent.ACTION_MEDIA_MOUNTED)) {
//USB設備掛載,更新UI
}
}
}
//獲得掛載的USB設備的存儲空間使用情況
public static String getUSBStorage(Context context){
// USB Storage
//storage/udisk為USB設備在Android設備上的掛載路徑.不同廠商的Android設備路徑不同。
//這樣寫同樣適合於SD卡掛載。
File path = new File("/storage/udisk");
StatFs stat = new StatFs(path.getPath());
long blockSize =
stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
long availableBlocks = stat.getAvailableBlocks();
String usedSize =
Formatter.formatFileSize(context, (totalBlocks-availableBlocks) *
blockSize);
String availableSize = Formatter.formatFileSize(context,
availableBlocks * blockSize);
return usedSize + " / " +
availableSize;//空間:已使用/可用的
}
2,USB外接輸入設備(如:鍵盤,滑鼠,掃描槍)
復制代碼
代碼如下:
try {
//獲得外接USB輸入設備的信息
Process p=Runtime.getRuntime().exec("cat
/proc/bus/input/devices");
BufferedReader in = new BufferedReader(new
InputStreamReader(p.getInputStream()));
String line = null;
while((line = in.readLine())!= null){
String deviceInfo =
line.trim();
//對獲取的每行的設備信息進行過濾,獲得自己想要的。
}
} catch (Exception e) {
// TODO: handle
exception
e.printStackTrace();
}
另:設備信息也可以通過 adb
shell 進入執行 cat /proc/bus/input/devices看到。
USB外接輸入設備信息列印如下:
復制代碼
代碼如下:
I: Bus=0003 Vendor=11c0 Proct=0030
Version=0110
N: Name="ACRUX USB Keyboard"
P:
Phys=usb-0000:00:04.0-1.3/input1
S:
Sysfs=/devices/pci0000:00/0000:00:04.0/usb1/1-1/1-1.3/1-1.3:1.1/input/input3
U:
Uniq=
H: Handlers=mouse1 event3
B: PROP=0
B: EV=17
B: KEY=70000 0 0
0 0 0 0 0 0
B: REL=103
B: MSC=10
I: Bus=0003 Vendor=11c0
Proct=0030 Version=0110 這行信息會在Android設備與USB設備數據交互的是否使用到。
關於USB外接設備如何與Android設備數據數據交互的代碼書寫可以參考:
http://developer.android.com/guide/topics/connectivity/usb/index.html
N: Name="ACRUX USB Keyboard" 這行說明了外接的USB設備的名稱。
P: Phys=usb-0000:00:04.0-1.3/input1
S:
Sysfs=/devices/pci0000:00/0000:00:04.0/usb1/1-1/1-1.3/1-1.3:1.1/input/input3
這兩行可用於識別該USB設備連接在Android設備的哪一個USB口.
Ⅳ android如何監聽有沒有插入usb線
代碼如下:
private USBBroadCastReceiver
mBroadcastReceiver;
IntentFilter iFilter = new IntentFilter();
iFilter.addAction(Intent.ACTION_MEDIA_EJECT);
iFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);
iFilter.addAction(Intent.ACTION_MEDIA_REMOVED);
iFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
iFilter.addDataScheme("file");
mBroadcastReceiver = new
USBBroadCastReceiver();
registerReceiver(mBroadcastReceiver,
iFilter);
private class USBBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if
(action.equals(Intent.ACTION_MEDIA_EJECT)) {
//USB設備移除,更新UI
} else if
(action.equals(Intent.ACTION_MEDIA_MOUNTED)) {
//USB設備掛載,更新UI
}
}
}