Nhập tệp cấu hình thiết bị

Tệp cấu hình thiết bị đầu vào (tệp .idc ) chứa các thuộc tính cấu hình dành riêng cho thiết bị ảnh hưởng đến hoạt động của thiết bị đầu vào.

Các tệp cấu hình thiết bị đầu vào thường không cần thiết cho các thiết bị ngoại vi tiêu chuẩn như bàn phím HID và chuột vì hành vi hệ thống mặc định thường đảm bảo rằng chúng sẽ hoạt động tốt. Mặt khác, các thiết bị nhúng tích hợp, đặc biệt là màn hình cảm ứng, hầu như luôn yêu cầu các tệp cấu hình thiết bị đầu vào để chỉ định hành vi của chúng.

Cơ sở lý luận

Android tự động phát hiện và định cấu hình hầu hết các khả năng của thiết bị đầu vào dựa trên các loại sự kiện và thuộc tính được trình điều khiển thiết bị đầu vào hạt nhân Linux liên kết báo cáo.

Ví dụ: nếu thiết bị đầu vào hỗ trợ loại sự kiện EV_REL và mã REL_XREL_Y cũng như loại sự kiện EV_KEYBTN_MOUSE , thì Android sẽ phân loại thiết bị đầu vào là chuột. Hành vi mặc định của chuột là hiển thị con trỏ trên màn hình theo dõi chuyển động của chuột và mô phỏng các thao tác chạm khi chuột được nhấp. Mặc dù chuột có thể được cấu hình khác nhau, nhưng hành vi mặc định thường đủ cho các thiết bị ngoại vi chuột tiêu chuẩn.

Một số loại thiết bị đầu vào không rõ ràng hơn. Ví dụ: màn hình cảm ứng đa điểm và miếng cảm ứng đều hỗ trợ tối thiểu loại sự kiện EV_ABS và mã ABS_MT_POSITION_XABS_MT_POSITION_Y . Tuy nhiên, mục đích sử dụng của các thiết bị này khá khác nhau và không phải lúc nào cũng có thể được xác định tự động. Ngoài ra, cần có thêm thông tin để hiểu thông tin về áp suất và kích thước được báo cáo bởi các thiết bị cảm ứng. Do đó, các thiết bị cảm ứng, đặc biệt là màn hình cảm ứng tích hợp, thường cần tệp IDC.

Địa điểm

Các tệp cấu hình thiết bị đầu vào được định vị theo id nhà cung cấp USB, sản phẩm (và phiên bản tùy chọn) hoặc theo tên thiết bị đầu vào.

Các đường dẫn sau đây được tham khảo theo thứ tự.

  • /odm/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /vendor/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /system/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /data/system/devices/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /odm/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /vendor/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /system/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /data/system/devices/idc/Vendor_XXXX_Product_XXXX.idc
  • /odm/usr/idc/ device-name .idc
  • /vendor/usr/idc/ device-name .idc
  • /system/usr/idc/ device-name .idc
  • /data/system/devices/idc/ device-name .idc

Khi xây dựng đường dẫn tệp có chứa tên thiết bị, tất cả các ký tự trong tên thiết bị không phải là '0' - '9', 'a' - 'z', 'A' - 'Z', '-' hoặc '_' được thay thế bằng '_'.

Cú pháp

Tệp cấu hình thiết bị đầu vào là tệp văn bản thuần túy bao gồm các chỉ định và nhận xét thuộc tính.

Đặc tính

Mỗi phép gán thuộc tính bao gồm tên thuộc tính, dấu = , giá trị thuộc tính và một dòng mới. Như thế này:

property = value

Tên thuộc tính là số nhận dạng văn bản theo nghĩa đen không trống. Chúng không được chứa khoảng trắng. Mỗi thành phần của hệ thống đầu vào xác định một tập hợp các thuộc tính được sử dụng để cấu hình chức năng của nó.

Giá trị thuộc tính là chuỗi ký tự không rỗng, số nguyên hoặc số dấu phẩy động. Chúng không được chứa khoảng trắng hoặc các ký tự dành riêng \ hoặc " .

Tên và giá trị thuộc tính có phân biệt chữ hoa chữ thường.

Bình luận

Các dòng nhận xét bắt đầu bằng '#' và tiếp tục đến cuối dòng. Như thế này:

# A comment!

Các dòng trống bị bỏ qua.

Thí dụ

# This is an example of an input device configuration file.
# It might be used to describe the characteristics of a built-in touch screen.

# This is an internal device, not an external peripheral attached to the USB
# or Bluetooth bus.
device.internal = 1

# The device should behave as a touch screen, which uses the same orientation
# as the built-in display.
touch.deviceType = touchScreen
touch.orientationAware = 1

# Additional calibration properties...
# etc...

Tài sản chung

Thuộc tính sau là chung cho tất cả các lớp thiết bị đầu vào.

Tham khảo tài liệu của mỗi lớp thiết bị đầu vào để biết thông tin về các thuộc tính đặc biệt được sử dụng bởi mỗi lớp.

device.internal

Định nghĩa: device.internal = 0 | 1

Chỉ định xem thiết bị đầu vào có phải là thành phần tích hợp bên trong hay không so với thiết bị ngoại vi được gắn bên ngoài (rất có thể có thể tháo rời).

  • Nếu giá trị là 0 , thiết bị là bên ngoài.

  • Nếu giá trị là 1 , thiết bị là bên trong.

  • Nếu giá trị không được chỉ định, giá trị mặc định là 0 cho tất cả các thiết bị trên bus USB (BUS_USB) hoặc Bluetooth (BUS_BLUETOOTH), ngược lại là 1 .

Thuộc tính này xác định các quyết định chính sách mặc định liên quan đến các sự kiện đánh thức.

Các thiết bị đầu vào bên trong thường không đánh thức màn hình từ chế độ ngủ trừ khi được định cấu hình rõ ràng để làm như vậy trong tệp bố cục khóa hoặc trong quy tắc chính sách được mã hóa cứng. Sự khác biệt này ngăn không cho các thao tác nhấn và chạm phím liên tục đánh thức điện thoại của bạn khi nó nằm trong túi của bạn. Thông thường chỉ có một số ít các phím đánh thức được xác định.

Ngược lại, các thiết bị đầu vào bên ngoài thường đánh thức thiết bị mạnh hơn vì chúng được cho là đã tắt hoặc không được cắm trong quá trình vận chuyển. Ví dụ, nhấn bất kỳ phím nào trên bàn phím ngoài là một chỉ báo tốt cho thấy người dùng muốn thiết bị đánh thức và phản hồi.

Điều quan trọng là đảm bảo rằng giá trị của thuộc tính device.internal được đặt chính xác cho tất cả các thiết bị đầu vào bên trong.

Thẩm định

Đảm bảo xác thực các tệp cấu hình thiết bị đầu vào của bạn bằng công cụ Validate Keymaps .