Android的聯通性—USB的從屬模式(二)

來源:互聯網
上載者:User

API概要

因為該附加的類庫是一個針對架構API的封裝,所以支援USB從屬模式的類都是類似的。即使你正在使用這個附加類庫,你也能夠使用android.hardware.usb的參考文檔。

注意:但是,在附加類庫和架構API之間有一點使用上的差異,你應該注意。

下表介紹了支援USB從屬模式API的類:

介紹

UsbManager

允許你列舉被串連的USB附件,並跟它們通訊。

UsbAccessory

代表一個USB附件,並包含了訪問該附件標識資訊的方法。

Add-on類庫和平台API之間在使用上的差異

在使用Google APIs add-on類庫和平台API之間有兩種使用上的差異。

如果使用add-on類庫,必須用下列方式擷取UsbManager對象:

UsbManager manager
=UsbManager.getInstance(this);、

否則,必須用下列方式擷取UsbManager對象:

UsbManager manager
=(UsbManager) getSystemService(Context.USB_SERVICE);

在使用Intent過濾器過濾一個被串連的附件時,在傳遞給你的應用程式的Intent對象內部包含了UsbAccessory對象。如果你正在使用add-on類庫,就必須使用以下方式來擷取UsbAccessory對象:

UsbAccessory accessory
=UsbManager.getAccessory(intent);

否則,必須使用以下方式來擷取UsbAccessory對象:

UsbAccessory accessory
=(UsbAccessory) intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY);

Android清單要求

下面列出了在使用USB從屬模式API工作之前,需要添加到你的應用程式資訊清單檔案中的內容:

1. 因為不是所有的Android裝置都保證支援USB從屬模式API,所以要在<uses-feature>元素中聲明使用android.hardware.usb.accessory功能;

2. 如果你是使用add-on類庫,還要添加<uses-library>元素來指定要使用的com.android.future.usb.accessory類庫;

3. 如果你是使用add-on類庫,則要設定該應用程式的SDK的最小版本號碼是API Level 10,如果使用的是android.hardware.usb包,則最小版本號碼是API Level 12.

4. 如果你希望獲得串連USB附件的通知,就要在你的主Activity中給<intent-filter>和<meta-data>元素指定android.hardware.usb.action.USB_ACCESSORY_ATTACHED類型的Intent。<meta-data>元素要指向一個外部的XML資源檔,該檔案中聲明了有關你想要檢測的附件的標識資訊。

在這個XML資源檔中,用<usb-accessory>元素來聲明你想要過濾的附件。每個<usb-accessory>元素能夠有以下屬性:

manufacturer

model

version

該資源檔儲存在res/xml目錄中。資源檔名稱(不含.xml副檔名)必須跟<meta-data>元素中指定的名稱相同。下例顯示該XML資源檔的格式:

清單和資源檔的樣本

下例顯示了清單和它對應的資源檔:

<manifest ...>

   
<uses-feature android:name="android.hardware.usb.accessory" />

   

   
<uses-sdk android:minSdkVersion="<version>" />

   
...

   
<application>

     
<uses-library android:name="com.android.future.usb.accessory" />

       
<activity ...>

           
...

           
<intent-filter>

               
<action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />

           
</intent-filter>

 

           
<meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"

               
android:resource="@xml/accessory_filter" />

       
</activity>

   
</application>

</manifest>

在這種情況下,以下資源檔應該被儲存在res/xml/accessory_filter.xml檔案中,並且指定了要過濾的附件所對應的模式、製造商和版本號碼。USB附件會把這些屬性發送給Android裝置:

<?xml version="1.0" encoding="utf-8"?>
 
<resources>
    <usb-accessorymodel="DemoKit"manufacturer="Google"version="1.0"/>

</resources>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.