ความเข้ากันได้ของไฟล์ Manifest ของแอปสำหรับ Chromebook

เมื่อเตรียมแอป Android ให้ทำงานบน Chromebook ให้พิจารณาฟีเจอร์ของอุปกรณ์ที่แอปใช้ Chromebook ไม่รองรับฟีเจอร์ฮาร์ดแวร์และซอฟต์แวร์ทั้งหมดที่มีในอุปกรณ์อื่นๆ ที่ใช้ Android หากแอปต้องใช้ฟีเจอร์บางอย่างที่ Chromebook ไม่รองรับ แอปจะติดตั้งใน Chromebook ไม่ได้

คุณสามารถประกาศข้อกำหนดของแอปสำหรับฟีเจอร์ฮาร์ดแวร์และฟีเจอร์ซอฟต์แวร์บางอย่างในไฟล์ Manifest เอกสารนี้จะอธิบายการประกาศฟีเจอร์ไฟล์ Manifest ของแอปที่เข้ากันไม่ได้กับ Chromebook

รายการไฟล์ Manifest ที่ใช้ร่วมกันไม่ได้

รายการไฟล์ Manifest ที่แสดงในส่วนนี้ใช้กับ Chromebook ไม่ได้ หากแอปใช้รายการเหล่านี้ ให้ลองนำรายการออกหรือระบุค่าแอตทริบิวต์ required="false" ไว้ด้วยเพื่อให้ติดตั้งแอปใน Chromebook ได้

ดูข้อมูลเพิ่มเติมเกี่ยวกับการประกาศการใช้ฟีเจอร์โดยไม่กำหนดให้ฟีเจอร์พร้อมใช้งานบนอุปกรณ์ได้ที่คู่มือสำหรับองค์ประกอบไฟล์ Manifest <uses-feature> ดูรายการฟีเจอร์และคำอธิบายไฟล์ Manifest ของแอปทั้งหมดได้ที่ข้อมูลอ้างอิงฟีเจอร์

หมายเหตุ: Android Studio 2.3 ขึ้นไปมีการตรวจสอบ Lint ในตัวเพื่อตรวจสอบไฟล์ Manifest โดยอัตโนมัติ ใน Android Studio ให้เลือกไฟล์ > การตั้งค่า > เครื่องมือแก้ไข > การตรวจสอบ > Android > Lint > ความถูกต้อง > ChromeOS

ฟีเจอร์ฮาร์ดแวร์

การสนับสนุนฟีเจอร์ฮาร์ดแวร์จะแตกต่างกันไปในแต่ละรุ่นของ Chromebook ฟีเจอร์บางอย่างไม่รองรับใน Chromebook ทุกรุ่น ส่วนฟีเจอร์อื่นๆ รองรับใน Chromebook บางรุ่นเท่านั้น

ฟีเจอร์พิเศษ

android.hardware.type.pc จะปิดใช้การจําลองอินพุตสําหรับเมาส์และแทร็กแพดเพื่อให้รองรับฮาร์ดแวร์ใน Chromebook ได้ดียิ่งขึ้น คุณต้องระบุ required="false" สำหรับรายการนี้ ไม่เช่นนั้นแอปจะทำงานได้บน Chromebook เท่านั้น

ฟีเจอร์ฮาร์ดแวร์ที่ไม่รองรับ

รายการต่อไปนี้คือฟีเจอร์ฮาร์ดแวร์ที่ Chromebook ไม่รองรับ

  • android.hardware.camera: กล้องหลัง
  • android.hardware.camera.autofocus: กล้องที่ใช้โฟกัสอัตโนมัติ
  • android.hardware.camera.capability.manual_post_processing: กล้องที่ใช้ฟีเจอร์ MANUAL_POST_PROCESSING ซึ่งรวมถึงฟังก์ชันการทำงานสำหรับการลบล้างการปรับสมดุลแสงสีขาวอัตโนมัติ
  • android.hardware.camera.capability.manual_sensor: กล้องที่ใช้ฟีเจอร์ MANUAL_SENSOR ซึ่งรวมถึงการรองรับการล็อกค่ารับแสงอัตโนมัติ
  • android.hardware.camera.capability.raw: กล้องที่ใช้ฟีเจอร์ RAW ซึ่งรวมถึงความสามารถในการบันทึกไฟล์ DNG (RAW) และระบุข้อมูลเมตาที่เกี่ยวข้องกับ DNG
  • android.hardware.camera.flash: กล้องที่ใช้แฟลช
  • android.hardware.camera.level.full: กล้องที่ใช้การรองรับการจับภาพระดับ FULL
  • android.hardware.consumerir: อินฟราเรด (IR)
  • android.hardware.location.gps: ระบบกำหนดตำแหน่งทั่วโลก (GPS)
  • android.hardware.nfc: Near-Field Communication (NFC)
  • android.hardware.nfc.hce: การจําลองบัตร NFC ซึ่งเลิกใช้งานแล้ว
  • android.hardware.sensor.barometer: บารอมิเตอร์ (ความกดอากาศ)
  • android.hardware.telephony: โทรคมนาคม รวมถึงวิทยุที่มีบริการการสื่อสารข้อมูล
  • android.hardware.telephony.cdma: การรองรับเครือข่ายโทรศัพท์แบบแบ่งรหัสการเข้าใช้งาน (CDMA)
  • android.hardware.telephony.gsm: การรองรับเครือข่าย Global System for Mobile Communications (GSM) ทางโทรศัพท์
  • android.hardware.type.automotive: อุปกรณ์ Android Automotive OS
  • android.hardware.type.television: television ซึ่งเลิกใช้งานแล้ว
  • android.hardware.usb.accessory: โหมดอุปกรณ์เสริม USB
  • android.hardware.usb.host: โหมดโฮสต์ USB

ฟีเจอร์ฮาร์ดแวร์ที่รองรับบางส่วน

รายการต่อไปนี้เป็นฟีเจอร์ฮาร์ดแวร์ที่อาจพร้อมใช้งานใน Chromebook บางรุ่น

  • android.hardware.sensor.accelerometer: accelerometer (การวางแนวอุปกรณ์)
  • android.hardware.sensor.compass: เข็มทิศ
  • android.hardware.sensor.gyroscope: เซ็นเซอร์วัดการหมุน (การหมุนและการบิดของอุปกรณ์)
  • android.hardware.sensor.light: ไฟ
  • android.hardware.sensor.proximity: ระยะทาง (จากผู้ใช้)
  • android.hardware.sensor.stepcounter: เครื่องนับก้าว
  • android.hardware.sensor.stepdetector: อุปกรณ์ตรวจจับขั้น

การรองรับฮาร์ดแวร์หน้าจอสัมผัส

ตั้งแต่ ChromeOS เวอร์ชัน M53 เป็นต้นไป แอป Android ทั้งหมดที่ไม่ต้องใช้ฟีเจอร์ android.hardware.touchscreen อย่างชัดแจ้งจะทำงานในอุปกรณ์ ChromeOS ที่รองรับฟีเจอร์ android.hardware.faketouch ได้ด้วย

อุปกรณ์ที่มีอินเทอร์เฟซการสัมผัสจำลองมีระบบอินพุตของผู้ใช้ที่จำลองเหตุการณ์การสัมผัสพื้นฐาน เช่น ผู้ใช้โต้ตอบกับเมาส์หรือรีโมตคอนโทรลเพื่อเลื่อนเคอร์เซอร์บนหน้าจอ เลื่อนดูรายการ และลากองค์ประกอบจากส่วนใดส่วนหนึ่งของหน้าจอไปยังอีกส่วนหนึ่ง

หากไม่ต้องการให้ติดตั้งแอปในอุปกรณ์ที่มีอินเทอร์เฟซการสัมผัสจำลองแต่ไม่มีหน้าจอสัมผัส ให้ดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้

  • ยกเว้นอุปกรณ์บางรุ่นใน Google Play Console
  • กรองอุปกรณ์ที่ไม่มีฮาร์ดแวร์หน้าจอสัมผัสโดยประกาศอย่างชัดเจนว่าต้องมี android.hardware.touchscreen เพื่อที่จะติดตั้งแอป

ฟีเจอร์ของซอฟต์แวร์

รายการต่อไปนี้คือฟีเจอร์ซอฟต์แวร์ที่ Chromebook ไม่รองรับ

  • android.software.app_widgets: วิดเจ็ตแอปในหน้าจอหลัก
  • android.software.device_admin: การดูแลระบบนโยบายด้านอุปกรณ์
  • android.software.home_screen: แทนที่หน้าจอหลักของอุปกรณ์
  • android.software.input_methods: วิธีการป้อนข้อมูลที่กำหนดเอง (อินสแตนซ์ของ InputMethodService)
  • android.software.leanback: UI ที่ออกแบบมาเพื่อการดูบนหน้าจอขนาดใหญ่
  • android.software.live_wallpaper: วอลเปเปอร์เคลื่อนไหว
  • android.software.live_tv: สตรีมมิงรายการทีวีสด
  • android.software.managed_users: ผู้ใช้รองและโปรไฟล์ที่มีการจัดการ
  • android.software.sip: บริการ Session Initiation Protocol (SIP) ซึ่งรองรับการประชุมทางวิดีโอและการรับส่งข้อความทันที
  • android.software.sip.voip: บริการ Voice Over Internet Protocol (VoIP) ที่ใช้ SIP ซึ่งรองรับการประชุมทางวิดีโอแบบ 2 ทาง

สิทธิ์ที่บ่งบอกถึงข้อกำหนดของฟีเจอร์

สิทธิ์บางอย่างที่คุณขอในไฟล์ Manifest อาจสร้างคำขอโดยนัยสำหรับฟีเจอร์ฮาร์ดแวร์และซอฟต์แวร์ การขอสิทธิ์เหล่านี้เป็นการป้องกันการให้ติดตั้งแอปใน Chromebook

โปรดดูรายละเอียดเกี่ยวกับวิธีป้องกันไม่ให้คำขอสิทธิ์ทำให้แอปของคุณใช้งานไม่ได้ใน Chromebook ในส่วนรายการไฟล์ Manifest ที่เข้ากันไม่ได้ของหน้านี้

ตารางต่อไปนี้แสดงสิทธิ์ที่บ่งบอกถึงข้อกำหนดของฟีเจอร์ที่ทำให้แอปใช้งานร่วมกับ Chromebook ไม่ได้

ตารางที่ 1 สิทธิ์ของอุปกรณ์ที่บ่งบอกถึงฟีเจอร์ฮาร์ดแวร์ที่ใช้ร่วมกับ Chromebook ไม่ได้

หมวดหมู่ สิทธิ์นี้ บอกเป็นนัยถึงข้อกำหนดของฟีเจอร์นี้
กล้อง CAMERA android.hardware.camera และ
android.hardware.camera.autofocus
โทรศัพท์ CALL_PHONE android.hardware.telephony
CALL_PRIVILEGED android.hardware.telephony
MODIFY_PHONE_STATE android.hardware.telephony
PROCESS_OUTGOING_CALLS android.hardware.telephony
READ_SMS android.hardware.telephony
RECEIVE_SMS android.hardware.telephony
RECEIVE_MMS android.hardware.telephony
RECEIVE_WAP_PUSH android.hardware.telephony
SEND_SMS android.hardware.telephony
WRITE_APN_SETTINGS android.hardware.telephony
WRITE_SMS android.hardware.telephony