Kể từ ngày 27 tháng 3 năm 2025, bạn nên sử dụng android-latest-release thay vì aosp-main để xây dựng và đóng góp cho AOSP. Để biết thêm thông tin, hãy xem phần Thay đổi đối với AOSP.
  
         
       
     
  
  
  
    
  
  
  
    
    
      
    
    
      
      Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
    
    
      
      Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
    
  
  
    
  
  
  
  
    
  
  
    
    
    
  
  
 
  
   #include <
   
    input.h
   
   >
  
 
 
  
   |  | 
  
   | input_device_identifier_t
    
    *(* | create_device_identifier
    
    )(
    
     input_host_t
    
    *host, const char *name, int32_t product_id, int32_t vendor_id,
    
     input_bus_t
    
    bus, const char *unique_id) | 
  
   |  | 
  
   | input_device_definition_t
    
    *(* | create_device_definition
    
    )(
    
     input_host_t
    
    *host) | 
  
   |  | 
  
   | input_report_definition_t
    
    *(* | create_input_report_definition
    
    )(
    
     input_host_t
    
    *host) | 
  
   |  | 
  
   | input_report_definition_t
    
    *(* | create_output_report_definition
    
    )(
    
     input_host_t
    
    *host) | 
  
   |  | 
  
   | void(* | free_report_definition
    
    )(
    
     input_host_t
    
    *host,
    
     input_report_definition_t
    
    *report_def) | 
  
   |  | 
  
   | void(* | input_device_definition_add_report
    
    )(
    
     input_host_t
    
    *host,
    
     input_device_definition_t
    
    *d,
    
     input_report_definition_t
    
    *r) | 
  
   |  | 
  
   | void(* | input_report_definition_add_collection
    
    )(
    
     input_host_t
    
    *host,
    
     input_report_definition_t
    
    *report,
    
     input_collection_id_t
    
    id, int32_t arity) | 
  
   |  | 
  
   | void(* | input_report_definition_declare_usage_int
    
    )(
    
     input_host_t
    
    *host,
    
     input_report_definition_t
    
    *report,
    
     input_collection_id_t
    
    id,
    
     input_usage_t
    
    usage, int32_t min, int32_t max, float resolution) | 
  
   |  | 
  
   | void(* | input_report_definition_declare_usages_bool
    
    )(
    
     input_host_t
    
    *host,
    
     input_report_definition_t
    
    *report,
    
     input_collection_id_t
    
    id,
    
     input_usage_t
    
    *usage, size_t usage_count) | 
  
   |  | 
  
   | input_device_handle_t
    
    *(* | register_device
    
    )(
    
     input_host_t
    
    *host,
    
     input_device_identifier_t
    
    *id,
    
     input_device_definition_t
    
    *d) | 
  
   |  | 
  
   | void(* | unregister_device
    
    )(
    
     input_host_t
    
    *host,
    
     input_device_handle_t
    
    *handle) | 
  
   |  | 
  
   | input_report_t
    
    *(* | input_allocate_report
    
    )(
    
     input_host_t
    
    *host,
    
     input_report_definition_t
    
    *r) | 
  
   |  | 
  
   | void(* | input_report_set_usage_int
    
    )(
    
     input_host_t
    
    *host,
    
     input_report_t
    
    *r,
    
     input_collection_id_t
    
    id,
    
     input_usage_t
    
    usage, int32_t value, int32_t arity_index) | 
  
   |  | 
  
   | void(* | input_report_set_usage_bool
    
    )(
    
     input_host_t
    
    *host,
    
     input_report_t
    
    *r,
    
     input_collection_id_t
    
    id,
    
     input_usage_t
    
    usage, bool value, int32_t arity_index) | 
  
   |  | 
  
   | void(* | report_event
    
    )(
    
     input_host_t
    
    *host,
    
     input_device_handle_t
    
    *d,
    
     input_report_t
    
    *report) | 
  
   |  | 
  
   | input_property_map_t
    
    *(* | input_get_device_property_map
    
    )(
    
     input_host_t
    
    *host,
    
     input_device_identifier_t
    
    *id) | 
  
   |  | 
  
   | input_property_t
    
    *(* | input_get_device_property
    
    )(
    
     input_host_t
    
    *host,
    
     input_property_map_t
    
    *map, const char *key) | 
  
   |  | 
  
   | const char *(* | input_get_property_key
    
    )(
    
     input_host_t
    
    *host,
    
     input_property_t
    
    *property) | 
  
   |  | 
  
   | const char *(* | input_get_property_value
    
    )(
    
     input_host_t
    
    *host,
    
     input_property_t
    
    *property) | 
  
   |  | 
  
   | void(* | input_free_device_property
    
    )(
    
     input_host_t
    
    *host,
    
     input_property_t
    
    *property) | 
  
   |  | 
  
   | void(* | input_free_device_property_map
    
    )(
    
     input_host_t
    
    *host,
    
     input_property_map_t
    
    *map) | 
  
   |  | 
 
 
 
 
 
  
   Định nghĩa tại dòng 
    409
    của tệp 
    input.h
   .
  
  
 
 
 
 
  
  
   
    Phân bổ định nghĩa thiết bị sẽ mô tả các chức năng đầu vào của thiết bị. Bạn có thể sử dụng định nghĩa thiết bị để đăng ký bao nhiêu thiết bị tuỳ ý.
   
   
    Định nghĩa tại dòng
    
     424
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 
 
  
  
   
    Tạo giá trị nhận dạng thiết bị bằng các thuộc tính đã cho. Mã nhận dạng duy nhất phải là một chuỗi xác định chính xác một phần cứng nhất định. Ví dụ: một thiết bị đầu vào được kết nối qua Bluetooth có thể sử dụng địa chỉ MAC làm mã nhận dạng duy nhất.
   
   
    Định nghĩa tại dòng
    
     416
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 
 
  
  
   
    Phân bổ một báo cáo đầu vào mà HAL sẽ sử dụng để thông báo cho máy chủ về các sự kiện đầu vào sắp tới hoặc một báo cáo đầu ra mà máy chủ sẽ sử dụng để thông báo cho HAL về các thay đổi trạng thái mong muốn (ví dụ: đặt LED).
   
   
    Định nghĩa tại dòng
    
     431
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 
 
 
 
 
  
  
   
    Giải phóng định nghĩa báo cáo.
   
   
    Định nghĩa tại dòng
    
     437
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 
 
  
  
   
    Phân bổ một báo cáo sẽ chứa tất cả trạng thái như mô tả trong báo cáo đã cho.
   
   
    Định nghĩa tại dòng
    
     488
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 
 
  
  
   
    Thêm báo cáo vào thiết bị đầu vào đã cho.
   
   
    Định nghĩa tại dòng
    
     442
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 
 
  
  
   
    Giải phóng input_property_t*.
   
   
    Định nghĩa tại dòng 
     535
     của tệp 
     input.h
    .
   
   
  
 
 
 
  
  
   
    Giải phóng input_property_map_t*.
   
   
    Định nghĩa tại dòng
    
     540
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 
 
  
  
   
    Truy xuất một thuộc tính cho thiết bị bằng khoá đã cho. Trả về giá trị NULL nếu khoá không tồn tại hoặc một input_property_t* phải được giải phóng bằng cách sử dụng 
     input_free_device_property()
    . Việc sử dụng input_property_t sau khi input_property_map_t tương ứng được giải phóng là không xác định.
   
   
    Định nghĩa tại dòng
    
     517
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 
 
  
  
   
    Truy xuất tập hợp thuộc tính cho thiết bị. Bạn có thể dùng input_property_map_t* được trả về để truy vấn các thuộc tính cụ thể thông qua lệnh gọi lại input_get_device_property.
   
   
    Định nghĩa tại dòng
    
     509
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 
 
  
  
   
    Lấy khoá cho thuộc tính đầu vào. Trả về giá trị NULL nếu thuộc tính này có giá trị NULL. const char* được trả về thuộc sở hữu của input_property_t.
   
   
    Định nghĩa tại dòng
    
     524
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 
 
  
  
   
    Lấy giá trị cho thuộc tính đầu vào. Trả về giá trị NULL nếu thuộc tính này có giá trị NULL. const char* được trả về thuộc sở hữu của input_property_t.
   
   
    Định nghĩa tại dòng
    
     530
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 
 
  
  
   
    Thêm một tập hợp có số lượng phần tử và mã nhận dạng đã cho. Tập hợp mô tả một tập hợp các thuộc tính được nhóm lại một cách hợp lý, chẳng hạn như toạ độ X và Y của một lần chạm ngón tay hoặc tập hợp các phím trên bàn phím. Arity khai báo số lượng thực thể lặp lại của tập hợp này sẽ xuất hiện trong bất kỳ báo cáo nào mà tập hợp này được đính kèm. Mã nhận dạng mô tả loại nhóm mà tập hợp đại diện. Ví dụ: màn hình cảm ứng có thể báo cáo tối đa 2 ngón tay cùng lúc có thể có một tập hợp với toạ độ X và Y, số lượng giá trị là 2 và mã nhận dạng là INPUT_COLLECTION_USAGE_TOUCHSCREEN. Mỗi mã nhận dạng chỉ được xuất hiện một lần trong một báo cáo cụ thể.
   
   
    Định nghĩa tại dòng
    
     455
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 
 
  
  
   
    Khai báo cách sử dụng int với các thuộc tính đã cho. Báo cáo và tập hợp dữ liệu xác định vị trí đang khai báo mức sử dụng.
   
   
    Định nghĩa tại dòng
    
     462
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 
 
  
  
   
    Khai báo một tập hợp các cách sử dụng boolean với các thuộc tính đã cho. Báo cáo và bộ sưu tập xác định vị trí khai báo các trường hợp sử dụng.
   
   
    Định nghĩa tại dòng
    
     470
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 
 
  
  
   
    Thêm giá trị sử dụng boolean vào báo cáo.
   
   
    Định nghĩa tại dòng
    
     499
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 
 
  
  
   
    Thêm giá trị sử dụng int vào báo cáo.
   
   
    Định nghĩa tại dòng 
     493
     của tệp 
     input.h
    .
   
   
  
 
 
 
  
  
   
    Đăng ký một định nghĩa thiết bị đầu vào nhất định. Thao tác này sẽ thông báo cho máy chủ rằng một thiết bị đầu vào đã được kết nối và mô tả tất cả chức năng của thiết bị đó.
   
   
    Định nghĩa tại dòng 
     479
     của tệp 
     input.h
    .
   
   
  
 
 
 
 
 
 
  
  
   
    Huỷ đăng ký thiết bị đã cho
   
   
    Định nghĩa tại dòng
    
     483
    
    của tệp
    
     input.h
    
    .
   
   
  
 
 Tài liệu cho cấu trúc này được tạo từ tệp sau:
 
  - 
   hardware/libhardware/include/hardware/
   
    input.h
   
  
 
 
  
  
  
 
  
    
    
      
    
    
  
       
    
    
  
  
  Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
  Cập nhật lần gần đây nhất: 2025-07-27 UTC.
  
  
  
    
      [[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[]]