Android的聯通性---USB的從屬模式

來源:互聯網
上載者:User

跟附件一起工作

當使用者把USB附件串連到Android裝置時,Android系統能夠判斷你的應用程式是否對接入的附件感興趣。如果感興趣,你能夠跟期望的附件建立通訊。以下是你的應用程式要做的事情:

1. 通過使用過濾附件裝置接入事件的Intent過濾器或列舉已經接入的附件裝置來發現對應的附件裝置;

2. 如果不是已知的附件裝置,就要詢問使用者是否允許跟該附件裝置通訊;

3. 通過讀寫對應介面端點上的資料來跟附件裝置通訊。

發現附件裝置

你的應用程式既可以通過使用者接入附件裝置時的Intent通知,也可以通過列舉已經接入的附件裝置來發現你想要的附件裝置。如果你想要你的應用能夠自動檢測到期望的附件裝置,那麼使用Intent過濾器是有用的。如果你想要擷取所有已串連的附件裝置列表,或者你的應用程式並不過濾特定的Intent,那麼使用列舉的方法是有用的。

使用Intent過濾器

你可以指定一個android.hardware.usb.action.USB_ACCESSORY_ATTACHED類型的Intent過濾器,以便你的應用程式能夠發現特殊的USB附件裝置。跟這個Intent過濾器一起,你還需要指定一個包含USB附件裝置屬性的資源檔,這些屬性包括:製造商、模式、版本。

下例顯示了如何聲明一個Intent過濾器:

<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>

下例是對應的資源檔的聲明:

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <usb-accessory manufacturer="Google, Inc." model="DemoKit" version="1.0" />

</resources>

在你的Activity中,你能夠從Intent對象中獲得代表接入的附件裝置的UsbAccessory對象.

使用add-on類庫的情況:

UsbAccessory accessory =UsbManager.getAccessory(intent);

使用平台API的情況:

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

列舉附件裝置

在應用程式運行時,你能夠讓你的應用程式列舉出已經識別出的所有附件裝置。

使用getAccessoryList()方法來擷取所有已串連的USB附件裝置:

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

UsbAccessory[] accessoryList = manager.getAcccessoryList();

注意:當前,一次只支援串連一個附件裝置,但是在未來,該API被設計成要支援多個附件裝置。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.