เมื่อเตรียมแอป 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 |