Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android的聯通性---USB的從屬模式

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

編輯:關於Android編程

跟附件一起工作

當用戶把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被設計成要支持多個附件設備。

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved