ตั้งแต่วันที่ 27 มีนาคม 2025 เป็นต้นไป เราขอแนะนำให้ใช้ android-latest-release แทน aosp-main เพื่อสร้างและมีส่วนร่วมใน AOSP โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการเปลี่ยนแปลงใน AOSP
  
         
       
     
  
  
  
    
  
  
  
    
      การกําหนดค่าพร็อพเพอร์ตี้
    
    
      
    
    
      
      จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
    
    
      
      บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
    
  
  
      
    
  
  
  
  
  
    
  
  
    
    
    
  
  พร็อพเพอร์ตี้ที่รองรับแต่ละรายการจะระบุโดยการกำหนดค่าพร็อพเพอร์ตี้ที่กำหนดผ่านโครงสร้าง
  VehiclePropConfig
  และมีช่องต่อไปนี้
  | ช่อง | คำอธิบาย | 
|---|
    | prop | รหัสพร็อพเพอร์ตี้ ซึ่งต้องเป็นพร็อพเพอร์ตี้ของระบบที่กำหนดไว้รายการใดรายการหนึ่งจาก
        VehicleProperty.aidlหรือพร็อพเพอร์ตี้ของผู้ให้บริการ รหัสพร็อพเพอร์ตี้สร้างขึ้นโดยใช้บิตหรือฟิลด์ต่อไปนี้
        (จากขวาไปซ้าย): 
        (0x00000000) 16 บิต: รหัสที่ไม่ซ้ำกันจากช่วง 0x0100 - 0xffff(0x00000000) 8 บิต: ประเภทพร็อพเพอร์ตี้ซึ่งกำหนดประเภทของพร็อพเพอร์ตี้(0x00000000) 4 บิต: ประเภทพื้นที่(0x00000000) 4 บิต: VehiclePropertyGroupค่านี้อาจเป็นSYSTEM(0x10000000) หรือVENDOR(0x20000000) ดูพร็อพเพอร์ตี้ของผู้ให้บริการ
          สำหรับพร็อพเพอร์ตี้ที่คุณปรับแต่งได้ ตัวอย่างเช่น
 INFO_VIN (0x11100100) = UniqueID (0x00000100) | VehiclePropertyType.STRING (0x00100000) | VehicleArea.GLOBAL (0x01000000) | VehiclePropertyGroup.SYSTEM (0x10000000) | 
  
    | access | 
        โหมดการเข้าถึงสำหรับพร็อพเพอร์ตี้ ต้องเป็น READ,WRITEหรือREAD_WRITEสำหรับพร็อพเพอร์ตี้ของระบบ ค่านี้ต้องเป็นโหมดการเข้าถึงที่กำหนดไว้ซึ่งระบุไว้ใน
        VehicleProperty.aidlสําหรับพร็อพเพอร์ตี้ที่มีสิทธิ์เข้าถึงต่อพื้นที่ นี่คือเซ็ตย่อยสูงสุดของสิทธิ์เข้าถึงต่อพื้นที่
          เช่น หากพร็อพเพอร์ตี้มี 2 พื้นที่ที่มีสิทธิ์เข้าถึงเป็น READและREAD_WRITEคุณควรตั้งค่านี้เป็นREAD | 
  
    | changeMode | 
        เปลี่ยนโหมดสำหรับพร็อพเพอร์ตี้ ต้องเป็น STATIC,ON_CHANGEหรือCONTINUOUSSTATICหมายความว่าค่าพร็อพเพอร์ตี้จะไม่เปลี่ยนแปลงหลังจากบูตระบบON_CHANGEหมายความว่า VHAL
          ต้องรายงานเมื่อค่ามีการเปลี่ยนแปลงCONTINUOUSหมายความว่าค่าพร็อพเพอร์ตี้
          เปลี่ยนแปลงอย่างต่อเนื่องและ VHAL ต้องรายงานตามอัตราการสุ่มตัวอย่างการสมัครใช้บริการสำหรับพร็อพเพอร์ตี้ของระบบ ค่านี้ต้องเท่ากับโหมดการเปลี่ยนแปลงที่ระบุไว้ใน
          VehicleProperty.aidl | 
  
    | configArray | อาร์เรย์ที่ไม่บังคับซึ่งมีการกำหนดค่าเฉพาะพร็อพเพอร์ตี้ เว้นว่างไว้ได้ สําหรับพร็อพเพอร์ตี้ระบบบางอย่าง เช่น GEAR_SELECTIONอาร์เรย์การกําหนดค่าจะมีความหมายพิเศษและต้องระบุ | 
  
    | configString | สตริงที่ไม่บังคับซึ่งมีการกำหนดค่าเฉพาะพร็อพเพอร์ตี้ เว้นว่างไว้ได้ | 
  
    | minSampleRateและmaxSampleRate | อัตราการสุ่มตัวอย่างขั้นต่ำและสูงสุดที่รองรับสำหรับพร็อพเพอร์ตี้แบบต่อเนื่อง (ในหน่วยเฮิรตซ์) ไม่ใช้หากพร็อพเพอร์ตี้
      ไม่ต่อเนื่อง minSampleRateและmaxSampleRateต้องทำได้โดยการติดตั้งใช้งาน VHAL
       ไม่จำเป็นต้องรองรับอัตราการสุ่มตัวอย่างทั้งหมดระหว่างค่าต่ำสุดและค่าสูงสุด | 
ประเภทพร็อพเพอร์ตี้
กำหนดเป็น Enum ใน VehiclePropertyType.aidl ประเภทพร็อพเพอร์ตี้ที่รองรับแสดงอยู่ในตารางต่อไปนี้
  | ประเภทพร็อพเพอร์ตี้ | ค่านิยม | คำอธิบาย | 
|---|
    | STRING | 0x00100000 | พร็อพเพอร์ตี้สตริง ใช้ฟิลด์ stringValueในค่าพร็อพเพอร์ตี้ยานพาหนะ | 
  
    | BOOLEAN | 0x00200000 | พร็อพเพอร์ตี้ Booleanใช้องค์ประกอบแรกในช่องint32Valuesในค่ายานพาหนะ0หมายถึงfalse,None 0หมายถึงtrue | 
  
    | INT32 | 0x00400000 | พร็อพเพอร์ตี้ Integerใช้องค์ประกอบแรกในช่องint32Valuesในค่ายานพาหนะ | 
  
    | INT32_VEC | 0x00410000 | พร็อพเพอร์ตี้ Integer[]ใช้องค์ประกอบในฟิลด์int32Valuesใน
      ค่าพร็อพเพอร์ตี้ยานพาหนะ | 
  
    | INT64 | 0x00500000 | พร็อพเพอร์ตี้ยาว ใช้องค์ประกอบแรกในฟิลด์ int64Valuesในค่าพร็อพเพอร์ตี้ยานพาหนะ | 
  
    | INT64_VEC | 0x00510000 | พร็อพเพอร์ตี้ Long[]ใช้องค์ประกอบในช่องint64Valuesในค่าพร็อพเพอร์ตี้ยานพาหนะ | 
  
    | FLOAT | 0x00600000 | พร็อพเพอร์ตี้ Floatใช้องค์ประกอบแรกในช่องfloatValuesในค่ายานพาหนะ | 
  
    | FLOAT_VEC | 0x00610000 | พร็อพเพอร์ตี้ Float[]ใช้องค์ประกอบในช่องfloatValuesในค่าพร็อพเพอร์ตี้ยานพาหนะ | 
  
    | BYTES | 0x00700000 | พร็อพเพอร์ตี้ byte[]ใช้องค์ประกอบในช่องbyteValuesในค่าพร็อพเพอร์ตี้ยานพาหนะ | 
  
    | MIXED | 0x00e00000 | ที่พักประเภทผสม ชุดค่าผสมของประเภทสเกลาร์หรือเวกเตอร์ ต้องระบุรูปแบบที่แน่นอนในอาร์เรย์การกำหนดค่าในการกำหนดค่าพร็อพเพอร์ตี้ สำหรับพร็อพเพอร์ตี้ประเภท MIXED ของผู้ให้บริการ คุณต้องจัดรูปแบบ configArrayในโครงสร้างนี้ 
          configArray[0], 1 แสดงว่าพร็อพเพอร์ตี้มีค่าStringconfigArray[1], 1 แสดงว่าพร็อพเพอร์ตี้มีค่าBooleanconfigArray[2], 1 หมายความว่าพร็อพเพอร์ตี้มีค่าIntegerconfigArray[3]ตัวเลขแสดงขนาดของInteger[]ในพร็อพเพอร์ตี้configArray[4], 1 แสดงว่าพร็อพเพอร์ตี้มีค่าLongconfigArray[5]ตัวเลขแสดงขนาดของLong[]ในพร็อพเพอร์ตี้configArray[6], 1 แสดงว่าพร็อพเพอร์ตี้มีค่าFloatconfigArray[7]ตัวเลขแสดงขนาดของFloat[]ในพร็อพเพอร์ตี้configArray[8]ตัวเลขจะระบุขนาดของbyte[]ในพร็อพเพอร์ตี้ เช่น configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0}แสดงว่าพร็อพเพอร์ตี้มีค่าStringค่าBooleanค่าIntegerและอาร์เรย์ที่มีจำนวนเต็ม 3 รายการ | 
การกำหนดค่ารหัสพื้นที่
การกำหนดค่าพร็อพเพอร์ตี้แต่ละรายการอาจมีรายการการกำหนดค่ารหัสพื้นที่ด้วย รายการนี้ไม่บังคับสำหรับพร็อพเพอร์ตี้ทั่วโลก และจำเป็นสำหรับพร็อพเพอร์ตี้ที่แบ่งเขต (พร็อพเพอร์ตี้ที่มีพื้นที่ที่รองรับหลายแห่ง) การกำหนดค่ารหัสพื้นที่แต่ละรายการมีช่องต่อไปนี้
    | ช่อง | คำอธิบาย | 
|---|
      | areaId | รหัสของพื้นที่นี้ ดูรหัสพื้นที่ | 
    
      | minInt32ValueและmaxInt32Value | 
          ค่าต่ำสุดและสูงสุดที่ไม่บังคับสำหรับพร็อพเพอร์ตี้ประเภท INT32 ในเวลาบูต ต้องเป็น 0
            สำหรับประเภทอื่นๆ ทั้งหมด ระบบจะไม่สนใจหากทั้งคู่เป็น 0สําหรับพร็อพเพอร์ตี้ส่วนกลาง หากจําเป็นต้องกําหนดค่าต่ำสุดและสูงสุด คุณต้องใช้การกําหนดค่าพื้นที่ 1 รายการ
            ที่มีรหัสพื้นที่ 0ค่านี้เป็นค่าคงที่และจะไม่เปลี่ยนแปลงแม้ว่าค่าต่ำสุดหรือสูงสุดจะเปลี่ยนแปลง
            ในขณะรันไทม์ก็ตาม ใช้ IVehicle#getMinMaxSupportedValueสำหรับค่าต่ำสุดหรือสูงสุดแบบไดนามิก | 
    
      | minInt64ValueและmaxInt64Value | 
          ค่าต่ำสุดและสูงสุดที่ไม่บังคับสำหรับพร็อพเพอร์ตี้ประเภท INT64 ในเวลาบูต ต้องเป็น 0
            สำหรับประเภทอื่นๆ ทั้งหมด ระบบจะไม่สนใจหากทั้งคู่เป็น 0สําหรับพร็อพเพอร์ตี้ส่วนกลาง หากจําเป็นต้องกําหนดค่าต่ำสุดและสูงสุด คุณต้องใช้การกําหนดค่าพื้นที่ 1 รายการ
            ที่มีรหัสพื้นที่ 0ค่านี้เป็นค่าคงที่และจะไม่เปลี่ยนแปลงแม้ว่าค่าต่ำสุดหรือสูงสุดจะเปลี่ยนแปลง
            ในขณะรันไทม์ก็ตาม ใช้ IVehicle#getMinMaxSupportedValueสำหรับค่าต่ำสุดหรือสูงสุดแบบไดนามิก | 
    
      | minFloatValueและmaxFloatValue | 
          ค่าต่ำสุดและสูงสุดที่ไม่บังคับสำหรับพร็อพเพอร์ตี้ประเภท Float ในเวลาบูต ต้องเป็น 0
            สำหรับประเภทอื่นๆ ทั้งหมด ระบบจะไม่สนใจหากทั้งคู่เป็น 0.0สําหรับพร็อพเพอร์ตี้ส่วนกลาง หากจําเป็นต้องกําหนดค่าต่ำสุดและสูงสุด คุณต้องใช้การกําหนดค่าพื้นที่ 1 รายการ
            ที่มีรหัสพื้นที่ 0ค่านี้เป็นค่าคงที่และจะไม่เปลี่ยนแปลงแม้ว่าค่าต่ำสุดหรือสูงสุดจะเปลี่ยนแปลง
            ในขณะรันไทม์ก็ตาม ใช้ IVehicle#getMinMaxSupportedValueสำหรับค่าต่ำสุดหรือสูงสุดแบบไดนามิก | 
    
      | (ใหม่ใน Android 14) 
 supportedEnumValues | 
          รายการค่าที่รองรับที่ไม่บังคับในเวลาบูต หากกำหนดพร็อพเพอร์ตี้เป็นพร็อพเพอร์ตี้ประเภท Enum
             หากไม่ได้ระบุ (ว่างเปล่า) หรือก่อน Android 14 ระบบจะถือว่ารองรับค่า enum ทั้งหมด
            สําหรับพร็อพเพอร์ตี้ส่วนกลาง หากจําเป็นต้องกําหนดค่าแจกแจงที่รองรับ คุณต้องใช้การกําหนดค่าพื้นที่ 1 รายการที่มีรหัสพื้นที่ 0ค่านี้เป็นค่าคงที่และจะไม่เปลี่ยนแปลงแม้ว่าค่าที่รองรับจะเปลี่ยนแปลง
            ในรันไทม์ก็ตาม ใช้ IVehicle#getSupportedValuesListsสำหรับค่าที่รองรับแบบไดนามิกโดยจะมีผลกับพร็อพเพอร์ตี้ประเภท Enum เท่านั้น สำหรับประเภทอื่นๆ ช่องนี้ต้องว่างเปล่า
            หากต้องการแสดงค่าที่รองรับสำหรับประเภทอื่นๆ ที่ไม่ใช่ประเภท Enum ให้ใช้
            IVehicle#getSupportedValuesLists | 
    
      | (ใหม่ใน Android 15) 
 supportVariableUpdateRate | 
          รองรับอัตราการอัปเดตตัวแปรหรือไม่ ซึ่งใช้ได้กับพร็อพเพอร์ตี้แบบต่อเนื่องเท่านั้น
          หากเป็น trueแอปจะเปิดใช้อัตราการอัปเดตตัวแปรสำหรับการสมัครใช้บริการเพื่อ
            รับเหตุการณ์การอัปเดตพร็อพเพอร์ตี้เมื่อค่าพร็อพเพอร์ตี้เปลี่ยนแปลงเท่านั้น
            (ซึ่งถือว่าพร็อพเพอร์ตี้ต่อเนื่องเป็นพร็อพเพอร์ตี้ที่เปลี่ยนแปลง)หากผู้ติดตามทั้งหมดของพร็อพเพอร์ตี้เปิดใช้อัตราการอัปเดตแบบแปรผัน คำขอการติดตาม
            ไปยัง VHAL จะเปิดใช้อัตราการอัปเดตแบบแปรผันสำหรับพร็อพเพอร์ตี้ และ VHAL ต้อง
            ส่งเหตุการณ์การอัปเดตพร็อพเพอร์ตี้เมื่อค่าพร็อพเพอร์ตี้มีการเปลี่ยนแปลงเท่านั้น
          หากผู้สมัครใช้บริการขออัตราการอัปเดตคงที่ คำขอสมัครใช้บริการ VHAL
            จะปิดใช้อัตราการอัปเดตแบบแปรผันสำหรับพร็อพเพอร์ตี้ และ AAOS จะกรอง
            เหตุการณ์ที่ซ้ำกันสำหรับไคลเอ็นต์ที่ขออัตราการอัปเดตแบบแปรผัน
          ขอแนะนำอย่างยิ่งให้รองรับอัตราการอัปเดตตัวแปรสำหรับพร็อพเพอร์ตี้ต่อเนื่องทั้งหมดที่ไม่ใช่การตรวจสอบสถานะ
            เพื่อประสิทธิภาพที่ดีขึ้น เว้นแต่ข้อมูลพร็อพเพอร์ตี้จะมีขนาดใหญ่ (เช่น
            อาร์เรย์ไบต์ขนาด 1k) และอาจใช้หน่วยความจำจำนวนมากสำหรับการแคช
           | 
    
      | (ใหม่ใน Android 16) 
 hasSupportedValueInfo | 
          หากไม่ใช่ nullจะแสดงว่าพร็อพเพอร์ตี้นี้ระบุค่าต่ำสุดหรือสูงสุด
            ที่รองรับหรือรายการค่าที่รองรับฟิลด์นี้ควบคุมว่า API ค่าที่รองรับแบบไดนามิกต่อไปนี้
            getMinMaxSupportedValue,getSupportedValuesListssubscribeSupportedValueChange,unsubscribeSupportedValueChangeได้รับการรองรับสำหรับรหัสพร็อพเพอร์ตี้และรหัสพื้นที่นี้หรือไม่หากไม่ได้nullVHAL ต้องใช้ API เหล่านี้สำหรับรหัสพร็อพเพอร์ตี้และรหัสพื้นที่นี้หาก nullหรือใน Android 15 หรือต่ำกว่า ระบบจะไม่รองรับค่าที่รองรับแบบไดนามิก
            สำหรับรหัสพร็อพเพอร์ตี้และรหัสพื้นที่นี้ ไคลเอ็นต์ต้องใช้
            ข้อมูลค่าคงที่ที่รองรับซึ่งระบุไว้ในการกำหนดค่าพร็อพเพอร์ตี้ยานพาหนะ | 
  
ประเภทพื้นที่
กำหนดเป็น Enum ใน VehicleArea.aidl ประเภทพื้นที่ที่รองรับแสดงอยู่ด้านล่าง
  | ประเภทพื้นที่ | ค่านิยม | คำอธิบาย | 
|---|
    | ทั่วโลก | 0x01000000 | พร็อพเพอร์ตี้นี้เป็นพร็อพเพอร์ตี้ส่วนกลางและไม่มีหลายพื้นที่ | 
  
    | หน้าต่าง | 0x03000000 | พื้นที่ตามหน้าต่าง ใช้ VehicleAreaWindowenum | 
  
    | Mirror | 0x04000000 | พื้นที่ตามกระจก ใช้ VehicleAreaMirrorenum | 
  
    | SEAT | 0x05000000 | พื้นที่ตามที่นั่ง ใช้ VehicleAreaSeatenum | 
  
    | DOOR | 0x06000000 | พื้นที่ตามประตู ใช้ VehicleAreaDoorenum | 
  
    | ล้อ | 0x07000000 | พื้นที่ตามล้อ ใช้ VehicleAreaWheelenum | 
พร็อพเพอร์ตี้ที่แบ่งเขตแต่ละรายการต้องใช้ประเภทพื้นที่ที่กำหนดไว้ล่วงหน้า ประเภทพื้นที่แต่ละประเภทมีชุดบิตแฟล็ก
  ที่กำหนดไว้ใน Enum สำหรับประเภทพื้นที่ ตัวอย่างเช่น พื้นที่ SEAT จะกำหนด
  VehicleAreaSeat enums ดังนี้
  
    - ROW_1_LEFT = 0x0001
- ROW_1_CENTER = 0x0002
- ROW_1_RIGHT = 0x0004
- ROW_2_LEFT = 0x0010
- ROW_2_CENTER = 0x0020
- ROW_2_RIGHT = 0x0040
- ROW_3_LEFT = 0x0100
- ...
รหัสพื้นที่
พร็อพเพอร์ตี้ที่แบ่งเขตจะระบุผ่านรหัสพื้นที่ ที่พักแต่ละแห่งที่แบ่งเขตอาจรองรับรหัสพื้นที่อย่างน้อย 1 รายการ
 รหัสพื้นที่ประกอบด้วยการตั้งค่าสถานะอย่างน้อย 1 รายการจาก Enum ที่เกี่ยวข้อง เช่น พร็อพเพอร์ตี้ที่ใช้ VehicleAreaSeat อาจใช้รหัสพื้นที่ต่อไปนี้
  | รายการ | คำอธิบาย | 
|---|
    | ROW_1_LEFT | ROW_1_RIGHT | รหัสพื้นที่ใช้ได้กับทั้งที่นั่งด้านหน้า | 
  
    | ROW_2_LEFT | โดยจะมีผลเฉพาะที่นั่งด้านหลังซ้าย | 
    | ROW_2_RIGHT | โดยจะมีผลกับที่นั่งด้านหลังขวาเท่านั้น | 
ดูข้อมูลเพิ่มเติมได้ที่ HVAC
  
  
  
 
  
    
    
      
    
    
  
       
    
    
  
  
  ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
  อัปเดตล่าสุด 2025-10-10 UTC
  
  
  
    
      [[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-10-10 UTC"],[],[]]