USB HOST LÀ GÌ

      27

Android cung cấp nhiều máy USB ngoại vi với phụ kiện app android USB thông qua 2 mode: Usb accessory và Usb Host.Trong phần này tôi sẽ nói tới việc thiết lập giao tiếp thân thiết bị apk và Usb device trong những số ấy Android device đóng vai trò là: Usb Host.

Bạn đang xem: Usb host là gì

*
Khi thiết bị Android-powered của bạn ở cơ chế USB Host, nó hoạt động như 1 USB Host, cấp cho quyền cho bus, và liệt kê những thiết bị Usb được kết nối. Chính sách USB Host được cung cấp trong android 3.1 trở lên.Sau phía trên là các bước để xây cất ứng dụng Android chuyển động ở chế độ Usb Host

Những yêu cầu apk Manifest:

Danh sách sau đây mô tả gần như gì bạn phải để cung ứng file manifrest của vận dụng trước khi thao tác với USB host APIs:-Vì không phải tất cả các trang bị Android-powered bảo đảm hỗ trợ USB Host APIs, bao gồm 1 element nhằm khai báo rằng ứng dụng của công ty sử dụng chức năng: android.hardware.usb.host-Thiết lập min SDK của áp dụng từ API level 12 hoặc cao hơn. USB host APIs không hiện hữu trên các API màn chơi trước đó.-Nếu bạn muốn ứng dụng của bạn được thông báo khi gồm một USB device được đính thêm vào, hãy chỉ định cặp với element đến android.hardware.usb.action.USB_DEVICE_ATTACHED intent vào main activity của bạn. element trỏ tới file resource XML phía bên ngoài để khai báo thông tin xác minh về vật dụng mà bạn có nhu cầu phát hiện.Trong XML resource file, khai báo elements đến usb device bạn muốn loc. Danh sách bên dưới mô tả các thuộc tính của . Nhìn bao quát sử dụng nhà cung cấp và model nếu bạn muốn lọc cho một device riêng biệt và áp dụng class, subclass, và giao thức nếu bạn muốn lọc cho một tổ các thứ USB, như là thiết bị lưu trữ hoặc máy ảnh kỹ thuật số. Chúng ta có thể chỉ định none hoặc all những thuộc tính. Chỉ định không có thuộc tính phù hợp với phần đa thiết bị USB bởi vậy chỉ triển khai nếu ứng dụng của người sử dụng yêu cầu:-vendor-id-product-id-class-subclass-protocol (device or interface)Lưu resource file trong thư mục res/xml/. Thương hiệu resource tệp tin (mà không tồn tại đuôi .xml) cần giống với tên mà chúng ta đã hướng đẫn trong element. Định dạng của XML resource file như ví dụ bên dưới đây:

*
Trong trường vừa lòng này resource tệp tin được lưu giữ trong res/xml/device_filter.xml và chỉ định và hướng dẫn rằng ngẫu nhiên USB device với các thuộc tính sẽ tiến hành lọc:
*

Làm vấn đề với thiết bị

Khi người dùng kết nối USB device với 1 Android-powered device, khối hệ thống Android rất có thể xác định coi ứng dụng của người tiêu dùng có quan tâm đến thiết bị được kết nối. Nếu có, bạn có thể thiết lập giao tiếp với lắp thêm nếu muốn. Để làm điều đó ứng dụng của khách hàng phải:

Discover những thiết bị USB sẽ kết nối bằng phương pháp sử dụng một bộ lọc (intent filter) nhằm nhận thông tin khi người tiêu dùng kết nối Usb device hoặc liệt kê USB đang kết nối.Hỏi người dùng về quyền kết nối tới USB device nếu chưa có.Giao tiếp cùng với Usb device bởi đọc và ghi dữ liệu trên các interface endpoints ưng ý hợp

Discovering một thiết bị

Ứng dụng của chúng ta cũng có thể khám phá phần lớn USB device bằng cách sử dụng một intent filter nhằm nhận thông báo khi người tiêu dùng kết nối một thứ hoặc liệt kê sản phẩm công nghệ usb sẽ kết nối. Thực hiện intent filter rất có lợi nếu bạn có nhu cầu ứng dụng của bạn auto phát hiện tại một thiết bị muốn muốn. Liệt kê hầu như thiết bị USB rất hữu dụng nếu bạn muốn lấy một danh sách tất cả các thứ đã kết nối hoặc ví như ứng dụng của người sử dụng không thanh lọc trong một intent.

Sử dụng một Intent filter

Để ứng dụng của bạn khám phá một Usb device cố gắng thể, bạn cũng có thể chỉ định một Intent filter nhằm lọc đến android.hardware.usb.action.USB_DEVICE_ATTACHED intent. Cùng với intent filter này, bạn phải chỉ ra một resource file những thuộc tính ví dụ của Usb device như là mã nhà cung ứng và mã sản phẩm. Khi người tiêu dùng kết nối một thiết bị tương xứng với bộ lọc của bạn, hệ thống thể hiện bọn chúng với một dialog hỏi rằng: nếu họ muốn khởi động áp dụng của bạn. Nếu người dùng chấp nhận, áp dụng của bạn tự động có quyền truy vấn thiết bị cho tới khi ngắt kết nối.

Xem thêm: Xóa Email Đã Gửi Trong Gmail Đơn Giản, Nhanh Nhất, Cách Thu Hồi Email Đã Gửi Trong Gmail

*
*
Trong activity của bạn, bạn cũng có thể lấy được UsbDevice đại diện cho thiết bị đi cùng từ intent như thế này:
*

Liệt kê thiết bị

Nếu vận dụng của bạn lưu ý đến việc kiểm tra tất cả các Usb device lúc này đã kết nối trong những lúc ứng dụng của doanh nghiệp đang chạy, nó rất có thể liệt kê phần lớn thiết bị. Thực hiện phương thức getDeviceList() để đưa một hash maps của toàn bộ các thiết bị sẽ kết nối. Hash map có key là tên của USB device nếu bạn có nhu cầu lấy một sản phẩm trong map.

*
Nếu ý muốn muốn chúng ta cũng có thể cũng đã đạt được một iterator từ hash map và cách xử lý từng device một:
*

Xin quyền tiếp xúc với một thiết bị

Trước khi tiếp xúc với một đồ vật USB, ứng dụng của người sử dụng phải có quyền từ người dùng.Hỏi quyền cụ thể là cần thiết trong một vài tình huống như là ứng dụng của bạn liệt kê USB device đã kết nối và muốn tiếp xúc với một thiết bị. Các bạn phải soát sổ quyền truy cập một device trước khi nỗ lực giao tiếp với nó. Nếu không các bạn sẽ nhận được một runtime error nếu tín đồ dụng giảm bớt quyền truy vấn của thiết bị.Để đạt được quyền rõ ràng, đầu tiên tạo một Broadcast receiver. Receiver này lắng nge intent để lấy broadcast khi bạn gọi requestPermission(). Gọi requestPermission() hiển thị một dialog nhằm hỏi người tiêu dùng về quyền kết nối đến thiết bị. Như ví dụ bên dưới đây

*
Để đk broadcast receiver thêm code này vào cách thức onCreate() trong activity của bạn:
*
Để hiển thị dialog nhằm hỏi người dùng cho quyền liên kết tới sản phẩm call cách tiến hành requestPermission():
*
Khi người dùng trả lời dialog, broadcast receiver của công ty nhận intent cất EXTRA_PERMISSION_GRANTED đó là một trong boolean thay mặt cho câu trả lời. Kiểm tra công dụng này là quý hiếm true trước lúc kết nối tới thiết bị.

Giao tiếp với 1 thiết bị

Giao tiếp với cùng 1 Usb device có thể đồng cỗ hoặc bất đồng bộ. Trong cả 2 trường hợp chúng ta nên tạo một Thread bắt đầu để thực hiện việc truyền tải dữ liệu như vậy các bạn sẽ không block UI thread. Để tùy chỉnh đúng tiếp xúc với một sản phẩm công nghệ bạn cần có được UsbInterface cùng UsbEndpoint tương thích của máy mà bạn muốn giao tiếp và gửi yêu cầu trên điểm cấu này với một UsbDeviceConnection. Nhìn bao quát code của khách hàng nên:

*

Kết thúc tiếp xúc với một thiết bị

Khi các bạn đã hoàn thành việc tiếp xúc với vật dụng USB hoặc giả dụ thiết bị vẫn bị tách ra, đóng UsbInterface và UsbDeviceConnection bằng phương pháp gọi releaseInterface() với close(). Để lắng nge sự kiện bóc tách ra, tạo một broadcast receiver như sau:

*
Tạo broadcast receiver bên phía trong ứng dụng không phải Manifest, cho phép ứng dụng của doanh nghiệp chỉ bắt sự kiện bóc tách khỏi trong khi đang chạy.

hotlive |

https://hi88n.com/