Android 10 มาพร้อมฟีเจอร์และขีดความสามารถที่ยอดเยี่ยมสำหรับผู้ใช้และ นักพัฒนาแอป เอกสารนี้จะเน้นสิ่งที่พร้อมให้บริการสำหรับนักพัฒนาแอป
หากต้องการดูข้อมูลเกี่ยวกับ API โปรดอ่านรายงานความแตกต่างของ API หรือไปที่เอกสารอ้างอิง Android API แล้วมองหา API ที่ "เพิ่มใน API ระดับ 29" นอกจากนี้ โปรดดูการเปลี่ยนแปลงลักษณะการทำงานของ Android 10 (สำหรับแอปที่กำหนดเป้าหมายเป็น API ระดับ 29 และสำหรับ แอปทั้งหมด) รวมถึงการเปลี่ยนแปลงด้านความเป็นส่วนตัว เพื่อดูข้อมูลเกี่ยวกับส่วนที่การเปลี่ยนแปลงแพลตฟอร์มอาจส่งผลต่อแอปของคุณ
การปรับปรุงการรักษาความปลอดภัย
Android 10 มีฟีเจอร์ความปลอดภัยหลายอย่าง ซึ่งส่วนต่อไปนี้จะสรุปให้
กล่องโต้ตอบการตรวจสอบสิทธิ์ด้วยข้อมูลไบโอเมตริกที่ปรับปรุงแล้ว
Android 10 มีการปรับปรุงการรองรับการตรวจสอบสิทธิ์ด้วยข้อมูลไบโอเมตริกดังนี้
- การตรวจสอบความสามารถในการตรวจสอบสิทธิ์ด้วยข้อมูลไบโอเมตริก
- กลไกสำรองที่ช่วยให้ผู้ใช้ตรวจสอบสิทธิ์โดยใช้ PIN, รูปแบบ หรือรหัสผ่านของอุปกรณ์ได้ หากตรวจสอบสิทธิ์โดยใช้ข้อมูลไบโอเมตริกไม่ได้
- คำแนะนำที่บอกระบบว่าไม่ต้องขอการยืนยันจากผู้ใช้หลังจากที่ผู้ใช้ ตรวจสอบสิทธิ์โดยใช้รูปแบบไบโอเมตริกโดยนัย เช่น คุณอาจ บอกระบบว่าไม่ควรต้องมีการยืนยันเพิ่มเติมหลังจากที่ผู้ใช้ ตรวจสอบสิทธิ์โดยใช้การตรวจสอบสิทธิ์ด้วยใบหน้า
เรียกใช้โค้ด DEX ที่ฝังจาก APK โดยตรง
ตั้งแต่ Android 10 เป็นต้นไป คุณสามารถบอกแพลตฟอร์มให้เรียกใช้โค้ด DEX ที่ฝังไว้ได้โดยตรงจากไฟล์ APK ของแอป ตัวเลือกนี้จะช่วยป้องกันการโจมตีได้ หากผู้โจมตีสามารถดัดแปลงโค้ดที่คอมไพล์ในเครื่องบนอุปกรณ์ได้
ดูข้อมูลเพิ่มเติมได้ที่ เรียกใช้โค้ด DEX แบบฝังจาก APK โดยตรง
รองรับ TLS 1.3
Android 10 เพิ่มการรองรับ TLS 1.3 TLS 1.3 เป็นการแก้ไขมาตรฐาน TLS ครั้งสำคัญ ซึ่งรวมถึงประโยชน์ด้านประสิทธิภาพและการรักษาความปลอดภัยที่ดียิ่งขึ้น การ เปรียบเทียบของเราแสดงให้เห็นว่าการเชื่อมต่อที่ปลอดภัยจะสร้างได้เร็วขึ้นถึง 40% ด้วย TLS 1.3 เมื่อเทียบกับ TLS 1.2
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการใช้งาน TLS 1.3 ของเราได้ที่ส่วน TLS ในหน้าการเปลี่ยนแปลงลักษณะการทำงานของแอปทั้งหมด
Public Conscrypt API
ตั้งแต่ Android 10 เป็นต้นมา ผู้ให้บริการความปลอดภัย Conscrypt จะมี API สาธารณะสำหรับฟังก์ชัน TLS
คอลเล็กชันของคลาสใน
android.net.ssl มีเมธอดแบบคงที่
เพื่อเข้าถึงฟังก์ชันการทำงานที่ไม่มีใน API javax.net.ssl ทั่วไป ชื่อของคลาสเหล่านี้สามารถอนุมานได้เป็นพหูพจน์ของjavax.net.sslคลาสที่เกี่ยวข้อง เช่น โค้ดที่ทำงานกับอินสแตนซ์ของ javax.net.ssl.SSLSocket สามารถใช้วิธีการจาก SSLSockets แทนได้
ฟีเจอร์การเชื่อมต่อ
Android 10 มีการปรับปรุงหลายอย่างที่เกี่ยวข้องกับเครือข่ายและการเชื่อมต่อ
API การเชื่อมต่อเครือข่าย Wi-Fi
Android 10 เพิ่มการรองรับการเชื่อมต่อแบบเพียร์ทูเพียร์ ฟีเจอร์นี้ช่วยให้แอปของคุณแจ้งให้ผู้ใช้เปลี่ยนจุดเข้าใช้งานที่อุปกรณ์เชื่อมต่ออยู่ได้โดยใช้
WifiNetworkSpecifier
เพื่ออธิบายพร็อพเพอร์ตี้ของเครือข่ายที่ขอ การเชื่อมต่อแบบเพียร์ทูเพียร์ใช้เพื่อวัตถุประสงค์ที่ไม่เกี่ยวข้องกับการให้บริการเครือข่าย เช่น การกำหนดค่าเริ่มต้นสำหรับ
อุปกรณ์รองอย่างฮาร์ดแวร์ Chromecast และ Google Home
ดูข้อมูลเพิ่มเติมได้ที่ Wi-Fi Network Request API สำหรับการเชื่อมต่อแบบเพียร์ทูเพียร์
Wi-Fi network suggestion API
Android 10 เพิ่มการรองรับให้แอปของคุณแจ้งให้ผู้ใช้เชื่อมต่อ กับจุดเข้าใช้งาน Wi-Fi คุณสามารถระบุคำแนะนำสำหรับเครือข่ายที่จะเชื่อมต่อได้ ท้ายที่สุดแล้ว แพลตฟอร์มจะเลือกจุดเข้าใช้งานที่จะยอมรับตามอินพุตจากแอปของคุณและแอปอื่นๆ
ดูข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์นี้ได้ที่ แนะนำ Wi-Fi
การปรับปรุงโหมดประสิทธิภาพสูงและความหน่วงต่ำของ Wi-Fi
Android 10 ช่วยให้คุณให้คำแนะนำแก่โมเด็มพื้นฐานเพื่อลด เวลาในการตอบสนอง
Android 10 ขยาย API ล็อก Wi-Fi เพื่อรองรับโหมดประสิทธิภาพสูง และโหมดค่าความหน่วงต่ำได้อย่างมีประสิทธิภาพ ระบบจะปิดใช้การประหยัดพลังงาน Wi-Fi สำหรับโหมดประสิทธิภาพสูงและโหมดค่าความหน่วงต่ำ และอาจเปิดใช้การเพิ่มประสิทธิภาพค่าความหน่วงเพิ่มเติมในโหมดค่าความหน่วงต่ำ ทั้งนี้ขึ้นอยู่กับการรองรับโมเด็ม
โหมดค่าความหน่วงต่ำจะเปิดใช้เฉพาะเมื่อแอปพลิเคชันที่รับการล็อก ทำงานในเบื้องหน้าและหน้าจอเปิดอยู่ โหมดค่าความหน่วงต่ำมีประโยชน์อย่างยิ่งสำหรับแอปพลิเคชันเกมบนอุปกรณ์เคลื่อนที่แบบเรียลไทม์
การค้นหาเฉพาะในรีโซลเวอร์ DNS
Android 10 เพิ่มการรองรับการค้นหา DNS เฉพาะทางโดยใช้
ทั้งการค้นหาข้อความธรรมดาและโหมด DNS-over-TLS ก่อนหน้านี้ตัวแก้ไข DNS ของแพลตฟอร์มรองรับเฉพาะระเบียน A และ AAAA ซึ่งอนุญาตให้ค้นหาเฉพาะที่อยู่ IP ที่เชื่อมโยงกับชื่อ แต่ไม่รองรับระเบียนประเภทอื่นๆ
DnsResolver API มีการแก้ปัญหาแบบอะซิงโครนัสทั่วไป
ซึ่งช่วยให้คุณค้นหา SRV, NAPTR และระเบียนประเภทอื่นๆ ได้
โปรดทราบว่าแอปจะเป็นผู้แยกวิเคราะห์การตอบกลับ
สำหรับแอปที่ใช้ NDK โปรดดู
android_res_nsend
Wi-Fi Easy Connect
Android 10 ช่วยให้คุณใช้ Easy Connect เพื่อจัดสรรข้อมูลเข้าสู่ระบบ Wi-Fi
ให้กับอุปกรณ์ที่อยู่ร่วมกันได้ ซึ่งเป็นการแทนที่ WPS ที่เลิกใช้งานไปแล้ว
แอปสามารถผสานรวม Easy Connect เข้ากับโฟลว์การตั้งค่าและการจัดสรรได้โดยใช้
ACTION_PROCESS_WIFI_EASY_CONNECT_URI
Intent
ดูข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์นี้ได้ที่ Wi-Fi Easy Connect
Wi-Fi Direct Connection API
คลาส API ของ WifiP2pConfig และ WifiP2pManager มีการอัปเดตใน Android 10
เพื่อรองรับความสามารถในการสร้างการเชื่อมต่อที่รวดเร็วกับ Wi-Fi Direct โดยใช้
ข้อมูลที่กำหนดไว้ล่วงหน้า ระบบจะแชร์ข้อมูลนี้ผ่านช่องทางด้านข้าง เช่น บลูทูธหรือ NFC
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างกลุ่มโดยใช้ข้อมูลที่กำหนดไว้ล่วงหน้า
Kotlin
val manager = getSystemService(Context.WIFI_P2P_SERVICE) as WifiP2pManager val channel = manager.initialize(this, mainLooper, null) // prefer 5G band for this group val config = WifiP2pConfig.Builder() .setNetworkName("networkName") .setPassphrase("passphrase") .enablePersistentMode(false) .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ) .build() // create a non-persistent group on 5GHz manager.createGroup(channel, config, null)
Java
WifiP2pManager manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE); Channel channel = manager.initialize(this, getMainLooper(), null); // prefer 5G band for this group WifiP2pConfig config = new WifiP2pConfig.Builder() .setNetworkName("networkName") .setPassphrase("passphrase") .enablePersistentMode(false) .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ) .build(); // create a non-persistent group on 5GHz manager.createGroup(channel, config, null);
หากต้องการเข้าร่วมกลุ่มโดยใช้ข้อมูลเข้าสู่ระบบ ให้แทนที่ manager.createGroup() ด้วยข้อมูลต่อไปนี้
Kotlin
manager.connect(channel, config, null)
Java
manager.connect(channel, config, null);
ช่องทางที่มุ่งเน้นการเชื่อมต่อ (CoC) ของบลูทูธ LE
Android 10 ช่วยให้แอปใช้การเชื่อมต่อ BLE CoC เพื่อโอนสตรีมข้อมูลขนาดใหญ่ขึ้นระหว่างอุปกรณ์ BLE 2 เครื่องได้ อินเทอร์เฟซนี้จะแยกบลูทูธและกลไกการเชื่อมต่อเพื่อลดความซับซ้อนในการติดตั้งใช้งาน
ฟีเจอร์โทรศัพท์
Android 10 มีการปรับปรุงหลายอย่างที่เกี่ยวข้องกับโทรศัพท์
การปรับปรุงคุณภาพการโทร
Android 10 เพิ่มความสามารถในการรวบรวมข้อมูลเกี่ยวกับคุณภาพของการโทรผ่าน IP Multimedia Subsystem (IMS) ที่กำลังดำเนินการ รวมถึงคุณภาพที่ส่งไปยังและจากเครือข่าย ในอุปกรณ์ที่รองรับฟีเจอร์นี้
การสกรีนสายเรียกเข้าและบริการระบุตัวตนผู้โทร
Android 10 มีวิธีให้แอปของคุณระบุสายที่ไม่
อยู่ในสมุดที่อยู่ของผู้ใช้ว่าเป็นสายที่อาจเป็นสแปม และปฏิเสธสายสแปม
โดยไม่แจ้งให้ผู้ใช้ทราบ ระบบจะบันทึกข้อมูลเกี่ยวกับการโทรที่ถูกบล็อกเหล่านี้
เป็นการโทรที่ถูกบล็อกในบันทึกการโทรเพื่อเพิ่มความโปร่งใสให้แก่
ผู้ใช้เมื่อพลาดสาย การใช้ API นี้จะช่วยลดข้อกำหนด
ในการขอREAD_CALL_LOGสิทธิ์จากผู้ใช้เพื่อให้บริการคัดกรองสายเรียกเข้า
และฟังก์ชันการแสดงหมายเลขผู้โทร
API บริการเปลี่ยนเส้นทางการโทร
Android 10 เปลี่ยนวิธีจัดการ Intent การโทร เราเลิกใช้งานการออกอากาศของ
NEW_OUTGOING_CALL แล้วและแทนที่ด้วย
CallRedirectionService API CallRedirectionService API มี
อินเทอร์เฟซให้คุณแก้ไขการโทรขาออกที่แพลตฟอร์ม Android ทำ เช่น แอปของบุคคลที่สามอาจยกเลิกการโทรและเปลี่ยนเส้นทางการโทรผ่าน VoIP
การปรับปรุงการสร้างไฟล์ในที่เก็บข้อมูลภายนอก
นอกจากการเปิดตัวพื้นที่เก็บข้อมูลที่กำหนดขอบเขตแล้ว Android 10 ยังเพิ่มความสามารถต่อไปนี้ที่เกี่ยวข้องกับพื้นที่เก็บข้อมูลภายนอกด้วย
- คุณสามารถใช้
IS_PENDINGแฟล็กเพื่อให้แอปของคุณ มีสิทธิ์เข้าถึงไฟล์สื่อแบบพิเศษขณะที่เขียนลงในดิสก์ - หากทราบตำแหน่งที่ควรจัดเก็บไฟล์ คุณสามารถ ให้คำแนะนำแก่ระบบเกี่ยวกับ ตำแหน่งที่จะจัดเก็บไฟล์ที่เขียนใหม่
- อุปกรณ์จัดเก็บข้อมูลภายนอกแต่ละเครื่องจะมีชื่อวอลุ่มที่ไม่ซ้ำกัน
สื่อและกราฟิก
Android 10 มีฟีเจอร์และ API ใหม่ๆ ด้านสื่อและกราฟิกดังต่อไปนี้
การแชร์อินพุตเสียง
Android 10 เพิ่มความสามารถให้ 2 แอปแชร์อินพุตเสียงพร้อมกันได้ ดูข้อมูลทั้งหมดได้ที่การแชร์เสียงที่ป้อน
การจับภาพการเล่นเสียง
Android 10 ช่วยให้แอปสามารถบันทึกการเล่นเสียงจากแอปอื่นๆ ได้ ดูข้อมูลทั้งหมดได้ที่การจับภาพการเล่น
แถบเลื่อนในการแจ้งเตือน MediaStyle
ตั้งแต่ Android 10 เป็นต้นไป MediaStyle การแจ้งเตือนจะแสดงแถบเลื่อน แถบเลื่อนจะแสดงความคืบหน้าในการเล่นจากPlaybackState.getPosition()
และในบางกรณี คุณสามารถใช้แถบเลื่อนเพื่อค้นหาตำแหน่งในรายการที่กำลังเล่นได้
ลักษณะที่ปรากฏและลักษณะการทำงานของแถบเลื่อนจะควบคุมโดยกฎต่อไปนี้
- แถบเลื่อนจะปรากฏขึ้นหากมี
MediaSessionที่ใช้งานอยู่และระยะเวลาของ (ระบุโดยMediaMetadata.METADATA_KEY_DURATION) มากกว่า 0 ซึ่งหมายความว่าแถบนี้จะไม่ปรากฏในสตรีมที่กำหนดไม่ได้ เช่น สตรีมแบบสดและการออกอากาศทางวิทยุ - หากเซสชันใช้
ACTION_SEEK_TOผู้ใช้จะลากแถบเลื่อนเพื่อ ควบคุมตำแหน่งที่เล่นได้
Native MIDI API
Android Native MIDI API (AMidi) ช่วยให้นักพัฒนาแอปสามารถ ส่งและรับข้อมูล MIDI ด้วยโค้ด C/C++ ซึ่งผสานรวมอย่างใกล้ชิดกับ ตรรกะการควบคุม/เสียง C/C++ และลดความจำเป็นในการใช้ JNI
ดูข้อมูลเพิ่มเติมได้ที่ Android Native MIDI API
การปรับปรุง MediaCodecInfo
Android 10 เพิ่มเมธอดไปยัง
MediaCodecInfo ซึ่งจะแสดงข้อมูลเพิ่มเติมเกี่ยวกับตัวแปลงรหัส
ดูข้อมูลเพิ่มเติมได้ที่ตัวแปลงรหัสสื่อ
Thermal API
เมื่ออุปกรณ์ร้อนเกินไป ระบบอาจจำกัดความเร็วของ CPU และ/หรือ GPU ซึ่งอาจส่งผลต่อแอปและเกมในลักษณะที่ไม่คาดคิด แอปที่ใช้กราฟิกที่ซับซ้อน การคำนวณที่หนักหน่วง หรือกิจกรรมเครือข่ายที่ต่อเนื่องมีแนวโน้มที่จะพบปัญหามากกว่า และปัญหาเหล่านั้นอาจแตกต่างกันไปในอุปกรณ์ต่างๆ โดยขึ้นอยู่กับชิปเซ็ตและความถี่ของคอร์ ระดับการผสานรวม รวมถึงการบรรจุภัณฑ์และรูปแบบของอุปกรณ์
ใน Android 10 แอปและเกมสามารถใช้ Thermal API เพื่อตรวจสอบการเปลี่ยนแปลงในอุปกรณ์และดำเนินการเพื่อรักษาการใช้พลังงานในระดับต่ำเพื่อคืนค่าอุณหภูมิปกติ แอปลงทะเบียน Listener ใน PowerManager ซึ่งระบบจะรายงานสถานะความร้อนที่กำลังดำเนินอยู่ตั้งแต่ระดับเล็กน้อยและปานกลางไปจนถึงรุนแรง วิกฤต ฉุกเฉิน และปิดเครื่อง
เมื่ออุปกรณ์รายงานความร้อนสะสม แอปและเกมจะช่วยได้โดยการหยุด กิจกรรมที่กำลังดำเนินอยู่เพื่อลดการใช้พลังงานด้วยวิธีต่างๆ ตัวอย่างเช่น แอปสตรีมมิงอาจลดความละเอียด/อัตราบิตหรือการจราจรของข้อมูลในเครือข่าย แอปกล้องอาจปิดใช้แฟลชหรือการปรับปรุงรูปภาพอย่างเข้มข้น เกมอาจลดอัตราเฟรมหรือการปูพื้นรูปหลายเหลี่ยม แอปสื่ออาจลดระดับเสียงลำโพง และแอปแผนที่อาจปิด GPS
Thermal API ต้องใช้เลเยอร์ HAL ของอุปกรณ์ใหม่ ปัจจุบันรองรับในอุปกรณ์ Pixel ที่ใช้ Android 10 และเรากำลังทำงานร่วมกับพาร์ทเนอร์ผู้ผลิตอุปกรณ์เพื่อรองรับระบบนิเวศอย่างกว้างขวางโดยเร็วที่สุด
กล้องและรูปภาพ
Android 10 เปิดตัวฟีเจอร์ใหม่ๆ ที่เกี่ยวข้องกับกล้องและรูปภาพต่อไปนี้
การรองรับกล้องขาวดำ
Android 9 (ระดับ API 28) เป็นเวอร์ชันแรกที่เปิดตัวความสามารถของกล้องขาวดำ Android 10 ได้เพิ่มการปรับปรุงหลายอย่างเพื่อรองรับกล้องขาวดำ ดังนี้
- รองรับรูปแบบสตรีม Y8 เพื่อปรับปรุงประสิทธิภาพหน่วยความจำ
- รองรับการจับภาพ DNG ดิบแบบขาวดำ
- การเปิดตัวการแจงนับ MONO และ NIR CFA เพื่อแยกความแตกต่างระหว่างกล้องขาวดำปกติกับกล้องอินฟราเรดใกล้
คุณใช้ฟีเจอร์นี้เพื่อถ่ายภาพขาวดำแบบเนทีฟได้ อุปกรณ์แบบหลายกล้องเชิงตรรกะอาจใช้กล้องขาวดำเป็นกล้องย่อยจริงเพื่อ ให้ได้คุณภาพของรูปภาพในสภาวะแสงน้อยที่ดีขึ้น
รูปแบบการปรับระยะความคมชัด
ตั้งแต่ Android 10 เป็นต้นไป กล้องจะจัดเก็บข้อมูลความลึกของรูปภาพใน ไฟล์แยกต่างหากโดยใช้สคีมาใหม่ที่เรียกว่ารูปแบบความลึกแบบไดนามิก (DDF) แอปสามารถ ขอทั้งรูปภาพ JPG และข้อมูลเมตาความลึกของรูปภาพ โดยใช้ข้อมูลดังกล่าวเพื่อ เบลอตามที่ต้องการในการประมวลผลภายหลังโดยไม่ต้องแก้ไขข้อมูลรูปภาพต้นฉบับ
หากต้องการอ่านข้อกำหนดสำหรับรูปแบบนี้ โปรดดูรูปแบบความลึกแบบไดนามิก
รูปแบบไฟล์รูปภาพประสิทธิภาพสูง
รูปแบบ High Efficiency Image File (HEIF) เป็นรูปแบบมาตรฐานของรูปภาพและวิดีโอ ซึ่งมีการเข้ารหัสคุณภาพสูงขึ้นและขนาดไฟล์เล็กลงเมื่อเทียบกับ รูปแบบไฟล์อื่นๆ
ดูข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบไฟล์ได้ที่ HEIC
การปรับปรุงในกล้องหลายตัว
Android 10 ปรับปรุงการรวมกล้องหลายตัวเป็นกล้องตรรกะเดียว ซึ่งเป็นฟีเจอร์ที่เปิดตัวใน Android 9 (ระดับ API 28) เราได้เพิ่มรายการต่อไปนี้ลงใน Camera2 API
isSessionConfigurationSupported(SessionConfiguration sessionConfig)- ช่วยให้คุณค้นหาได้ว่าการกำหนดค่าเซสชันที่ส่งผ่านใช้เพื่อสร้างเซสชันการจับภาพจากกล้องได้หรือไม่LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID- ช่วยให้คุณระบุรหัสของกล้องจริงที่ใช้งานอยู่ซึ่งรองรับอุปกรณ์กล้องตรรกะได้ คุณสามารถใช้รหัสที่ส่งกลับมาเพื่อขอสตรีมเชิงตรรกะและสตรีมกล้องย่อยจริงเพื่อให้ประหยัดพลังงานได้ดียิ่งขึ้น
API บริการการช่วยเหลือพิเศษ
Android 10 เปิดตัวฟีเจอร์และ API ใหม่ของบริการการช่วยเหลือพิเศษต่อไปนี้
แฟล็กคีย์เข้าถึง AccessibilityNodeInfo
ตั้งแต่ Android 10 เป็นต้นไป คุณสามารถเรียกใช้
isTextEntryKey()
เพื่อพิจารณาว่า AccessibilityNodeInfo ที่ระบุเป็นแป้นป้อนข้อความ
ซึ่งเป็นส่วนหนึ่งของแป้นพิมพ์หรือแป้นกดหรือไม่
การอธิบายและอ่านออกเสียงกล่องโต้ตอบการช่วยเหลือพิเศษ
ในกรณีที่ผู้ใช้ต้องใช้ทางลัดสำหรับการช่วยเหลือพิเศษเพื่อเริ่มบริการการช่วยเหลือพิเศษ Android 10 จะอนุญาตให้กล่องโต้ตอบมาพร้อมกับข้อความแจ้งแบบ Text-to-Speech หากบริการดังกล่าวร้องขอ
ทางลัดสำหรับการช่วยเหลือพิเศษเมื่อเปิดใช้การไปยังส่วนต่างๆ ด้วยท่าทางสัมผัส
เมื่อเปิดใช้ฟีเจอร์การไปยังส่วนต่างๆ ด้วยท่าทางสัมผัสใน Android 10 ปุ่มการช่วยเหลือพิเศษจะมองไม่เห็นหรือเลือกไม่ได้ หากต้องการเข้าถึงเมนูบริการการช่วยเหลือพิเศษ ผู้ใช้ต้อง ทำท่าทางสัมผัสอย่างใดอย่างหนึ่งต่อไปนี้
- ใช้ 2 นิ้วปัดขึ้น
- ใช้ 2 นิ้วปัดขึ้นแล้วค้างไว้
ทางลัดสำหรับการช่วยเหลือพิเศษสำหรับแป้นพิมพ์จริง
ใน Android 10 ผู้ใช้สามารถเรียกใช้ทางลัดสำหรับการช่วยเหลือพิเศษบนแป้นพิมพ์จริงได้โดยกด Control+Alt+Z
การปรับปรุงตัวควบคุมแป้นพิมพ์เสมือน
ใน Android 10 บริการการช่วยเหลือพิเศษสามารถขอให้แสดงแป้นพิมพ์ซอฟต์แวร์ได้แม้ว่าอุปกรณ์จะตรวจพบแป้นพิมพ์จริงที่เชื่อมต่ออยู่ก็ตาม ผู้ใช้จะลบล้างลักษณะการทำงานนี้ได้
การหมดเวลาการช่วยเหลือพิเศษที่ผู้ใช้กำหนด
Android 10 เปิดตัว
getRecommendedTimeoutMillis()
API วิธีนี้รองรับการหมดเวลาที่ผู้ใช้กำหนดสำหรับองค์ประกอบ UI แบบอินเทอร์แอกทีฟและ
แบบไม่โต้ตอบ ค่าที่ส่งคืนจะได้รับผลกระทบจากทั้งค่ากําหนดของผู้ใช้
และ API ของบริการการช่วยเหลือพิเศษ
การปรับปรุงการป้อนข้อความอัตโนมัติ
Android 10 มีการปรับปรุงบริการป้อนข้อความอัตโนมัติดังต่อไปนี้
คำขอเติมข้อความอัตโนมัติที่เกี่ยวข้องกับความเข้ากันได้
คุณใช้แฟล็ก
FillRequest.FLAG_COMPATIBILITY_MODE_REQUEST
เพื่อพิจารณาว่าคำขอป้อนข้อความอัตโนมัติสร้างขึ้นผ่านโหมดความเข้ากันได้
หรือไม่
บันทึกชื่อผู้ใช้และรหัสผ่านพร้อมกัน
คุณรองรับกรณีที่แอปพลิเคชันใช้กิจกรรมหลายอย่างเพื่อ
แสดงชื่อผู้ใช้ รหัสผ่าน และช่องอื่นๆ ได้โดยใช้
แฟล็ก SaveInfo.FLAG_DELAY_SAVE
การโต้ตอบของผู้ใช้กับ UI ของการบันทึก
คุณสามารถแสดงและซ่อนช่องรหัสผ่านในกล่องโต้ตอบการบันทึกได้โดยการตั้งค่าเครื่องฟังเหตุการณ์ ในกล่องโต้ตอบและเปลี่ยนระดับการเข้าถึงของรหัสผ่านที่เกี่ยวข้อง มุมมองระยะไกล
การรองรับการอัปเดตชุดข้อมูล
การป้อนข้อความอัตโนมัติสามารถอัปเดตรหัสผ่านที่มีอยู่ได้ ตัวอย่างเช่น หากผู้ใช้บันทึกรหัสผ่านไว้แล้วและบันทึกรหัสผ่านใหม่ การป้อนข้อความอัตโนมัติจะแจ้งให้ผู้ใช้อัปเดตรหัสผ่านที่มีอยู่แทนที่จะบันทึกรหัสผ่านใหม่
การปรับปรุงการแยกประเภทฟิลด์
Android 10 มีการปรับปรุง Field Classification API ดังต่อไปนี้
ตัวสร้าง UserData.Builder
ตัวสร้าง
UserData.Builder
มีการเปลี่ยนแปลงเพื่อให้สอดคล้องกับรูปแบบ Builder มากขึ้น
อนุญาตให้แมปค่ากับรหัสหมวดหมู่หลายประเภท
เมื่อใช้
UserData.Builder ใน
Android 10 ตอนนี้คุณสามารถแมปค่ากับรหัสหมวดหมู่หลายประเภทได้แล้ว ใน
รุ่นก่อนหน้า ระบบจะแสดงข้อยกเว้นหากมีการเพิ่มค่ามากกว่า 1 ครั้ง
ปรับปรุงการรองรับหมายเลขบัตรเครดิต
ตอนนี้การจัดประเภทฟิลด์สามารถตรวจหาตัวเลข 4 หลักเป็น 4 หลักสุดท้าย ของหมายเลขบัตรเครดิตได้แล้ว
การรองรับการแยกประเภทฟิลด์เฉพาะแอป
Android 10 เพิ่ม
FillResponse.setUserData()
ซึ่งช่วยให้คุณตั้งค่าข้อมูลผู้ใช้เฉพาะแอปได้ตลอดระยะเวลาของเซสชัน
ซึ่งจะช่วยให้บริการป้อนข้อความอัตโนมัติตรวจหาประเภทของช่องที่มีเนื้อหาเฉพาะแอปได้
การควบคุม UI และระบบ
Android 10 มีการปรับปรุงอินเทอร์เฟซผู้ใช้ดังนี้
รองรับความสามารถ PopFrame ของ JVMTI
Android 10 เพิ่มการรองรับความสามารถ
can_pop_frames
ในการติดตั้งใช้งาน JVMTI ของ Android เมื่อทำการแก้ไขข้อบกพร่อง ฟีเจอร์นี้จะช่วยให้คุณเรียกใช้ฟังก์ชันอีกครั้งได้หลังจากหยุดชั่วคราวที่เบรกพอยต์และปรับตัวแปรภายใน ตัวแปรส่วนกลาง หรือการใช้งานฟังก์ชัน ดูข้อมูลเพิ่มเติมได้ที่หน้าอ้างอิง Pop Frame ของ Oracle
API ควบคุมพื้นผิว
Android 10 มี
SurfaceControl API
สำหรับการเข้าถึง Compositor ของระบบในระดับต่ำ
(SurfaceFlinger) สำหรับผู้ใช้ส่วนใหญ่ SurfaceView เป็นวิธีที่ถูกต้องในการใช้ประโยชน์จาก Compositor
SurfaceControl API อาจมีประโยชน์ในบางกรณี เช่น
- การซิงค์อุปกรณ์หลายเครื่อง
- การฝังพื้นผิวข้ามกระบวนการ
- การจัดการอายุการใช้งานระดับล่าง
SurfaceControl API พร้อมใช้งานทั้งใน SDK และการเชื่อมโยง NDK
การใช้งาน NDK มี API สำหรับการแลกเปลี่ยนบัฟเฟอร์กับ Compositor ด้วยตนเอง
ซึ่งเป็นทางเลือกสำหรับผู้ใช้ที่พบข้อจำกัดของ BufferQueue
การตรวจหาโปรแกรมแสดงผลที่ค้างของ WebView
Android 10 เปิดตัวคลาส
WebViewRenderProcessClient
นามธรรม ซึ่งแอปสามารถใช้เพื่อตรวจหาว่าWebViewไม่ตอบสนองหรือไม่ วิธี
ใช้คลาสนี้
- กำหนดคลาสย่อยของคุณเองและใช้เมธอด
onRenderProcessResponsive()และonRenderProcessUnresponsive() - แนบอินสแตนซ์ของ
WebViewRenderProcessClientกับออบเจ็กต์WebViewอย่างน้อย 1 รายการ - หาก
WebViewไม่ตอบสนอง ระบบจะเรียกใช้เมธอดonRenderProcessUnresponsive()ของไคลเอ็นต์ โดยส่งWebViewและWebViewRenderProcess(หากWebViewเป็นแบบกระบวนการเดียว พารามิเตอร์WebViewRenderProcessจะเป็น Null) แอปสามารถดำเนินการที่เหมาะสมได้ เช่น แสดง กล่องโต้ตอบต่อผู้ใช้เพื่อถามว่าต้องการหยุดกระบวนการแสดงผลหรือไม่
หาก WebView ยังคงไม่ตอบสนอง ระบบจะเรียกใช้ onRenderProcessUnresponsive()
เป็นระยะๆ (ไม่เกิน 1 ครั้งทุกๆ 5 วินาที) แต่จะไม่ดำเนินการอื่นใด
หาก WebView ตอบสนอง
อีกครั้ง ระบบจะเรียกใช้ onRenderProcessResponsive() เพียงครั้งเดียว
แผงการตั้งค่า
Android 10 เปิดตัว Settings Panels ซึ่งเป็น API ที่ช่วยให้แอปแสดง การตั้งค่าต่อผู้ใช้ในบริบทของแอปได้ ซึ่งจะช่วยให้ผู้ใช้ไม่ต้องไปที่การตั้งค่าเพื่อเปลี่ยนสิ่งต่างๆ เช่น NFC หรืออินเทอร์เน็ตมือถือ เพื่อใช้แอป
เช่น สมมติว่าผู้ใช้เปิดเว็บเบราว์เซอร์ขณะที่อุปกรณ์อยู่ใน โหมดบนเครื่องบิน ก่อน Android 10 แอปจะแสดงได้เพียงข้อความทั่วไป ที่ขอให้ผู้ใช้เปิดการตั้งค่าเพื่อกู้คืนการเชื่อมต่อ ใน Android 10 แอปเบราว์เซอร์จะแสดงแผงในหน้าเว็บที่แสดงการตั้งค่าการเชื่อมต่อที่สำคัญ เช่น โหมดบนเครื่องบิน, Wi-Fi (รวมถึงเครือข่ายที่อยู่ใกล้เคียง) และอินเทอร์เน็ตบนมือถือ แผงนี้ช่วยให้ผู้ใช้กู้คืนการเชื่อมต่อได้โดยไม่ต้องออกจากแอป
หากต้องการแสดงแผงการตั้งค่า ให้เรียกใช้ Intent ด้วยการดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้
Settings.Panel
Kotlin
val panelIntent = Intent(Settings.Panel.settings_panel_type) startActivityForResult(panelIntent)
Java
Intent panelIntent = new Intent(Settings.Panel.settings_panel_type); startActivityForResult(panelIntent);
settings_panel_type อาจเป็นค่าใดค่าหนึ่งต่อไปนี้
ACTION_INTERNET_CONNECTIVITY- แสดงการตั้งค่าที่เกี่ยวข้องกับการเชื่อมต่ออินเทอร์เน็ต เช่น โหมดบนเครื่องบิน, Wi-Fi และอินเทอร์เน็ตมือถือ
ACTION_WIFI- แสดงการตั้งค่า Wi-Fi แต่ไม่แสดงการตั้งค่าการเชื่อมต่ออื่นๆ ซึ่งมีประโยชน์สำหรับแอปที่ต้องใช้การเชื่อมต่อ Wi-Fi เพื่ออัปโหลดหรือ ดาวน์โหลดไฟล์ขนาดใหญ่
ACTION_NFC- แสดงการตั้งค่าทั้งหมดที่เกี่ยวข้องกับ Near Field Communication (NFC)
ACTION_VOLUME- แสดงการตั้งค่าระดับเสียงสำหรับสตรีมเสียงทั้งหมด
การปรับปรุงการแชร์
Android 10 มีการปรับปรุงการแชร์หลายอย่าง ดังนี้
Sharing Shortcuts API
Sharing Shortcuts API จะมาแทนที่ Direct Share APIs
Sharing Shortcuts API
ช่วยให้แอปเผยแพร่เป้าหมายการแชร์โดยตรงล่วงหน้าได้ แทนที่จะดึงผลลัพธ์แบบรีแอกทีฟตามความต้องการ วิธีการทำงานของShortcutManagerมีดังนี้
เนื่องจาก API ทั้ง 2 รายการมีความคล้ายคลึงกัน เราจึงได้ขยาย ShortcutInfo
API เพื่อให้การใช้ฟีเจอร์ทั้ง 2 รายการง่ายขึ้น
เมื่อใช้ Sharing Shortcuts API คุณจะกำหนดหมวดหมู่หรือบุคคลให้กับเป้าหมายการแชร์ได้โดยตรง
เป้าหมายการแชร์จะยังคงอยู่ในระบบ
จนกว่าแอปเดียวกันจะอัปเดตเป้าหมายเหล่านั้นหรือมีการถอนการติดตั้งแอป
กลไกการแชร์โดยตรงแบบเดิมยังคงใช้งานได้ แต่แอปที่ใช้กลไกนี้จะมีลำดับความสำคัญต่ำกว่าแอปที่ใช้ Sharing Shortcuts API
ShortcutInfo.Builder
เพิ่มและปรับปรุงวิธีการเพื่อให้ข้อมูลเพิ่มเติมเกี่ยวกับเป้าหมายการแชร์
เป้าหมายการแชร์โดยตรง
คุณสามารถเผยแพร่ทางลัดแบบไดนามิกเป็นเป้าหมายการแชร์โดยตรงได้ ดูเผยแพร่เป้าหมายการแชร์โดยตรง
ShortcutManagerCompat
เป็น AndroidX API ใหม่ที่ให้ความเข้ากันได้แบบย้อนหลังกับ DirectShare API แบบเดิม วิธีนี้เป็นวิธีที่แนะนำในการเผยแพร่เป้าหมายการแชร์
การแสดงตัวอย่างข้อความ
เมื่อแอปแชร์เนื้อหาข้อความ แอปจะแสดงตัวอย่างเนื้อหาที่ไม่บังคับใน UI ของชีตการแชร์ได้
ดูข้อมูลเพิ่มเติม
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่แอปแชร์ข้อมูลได้ที่ การส่งข้อมูลอย่างง่ายไปยังแอปอื่นๆ และ การรับข้อมูลอย่างง่ายจากแอปอื่นๆ
ธีมมืด
Android 10 มีธีมสีเข้มซึ่งใช้ได้กับทั้ง UI ของระบบ Android และแอปที่ทำงานในอุปกรณ์ ดูข้อมูลทั้งหมดได้ที่ธีมมืด
ประเภทบริการที่ทำงานอยู่เบื้องหน้า
Android 10 เปิดตัวแอตทริบิวต์ไฟล์ Manifest XML ของ
foregroundServiceType
ซึ่งคุณจะรวมไว้ในคำจำกัดความของบริการที่เฉพาะเจาะจงหลายอย่างได้
คุณสามารถกำหนดประเภทบริการที่ทำงานอยู่เบื้องหน้าหลายประเภทให้กับบริการหนึ่งๆ ได้ แม้ว่าในบางกรณีอาจไม่เหมาะสม
ตารางต่อไปนี้แสดงประเภทบริการที่ทำงานอยู่เบื้องหน้าต่างๆ และ บริการที่ควรประกาศประเภทที่เฉพาะเจาะจง
| ประเภทบริการที่ทำงานอยู่เบื้องหน้า | ตัวอย่างกรณีการใช้งานสำหรับบริการที่ควรประกาศประเภทนี้ |
|---|---|
connectedDevice
| ตรวจสอบเครื่องติดตามการเคลื่อนไหวแบบสวมใส่ |
dataSync
| ดาวน์โหลดไฟล์จากเครือข่าย |
location
| ดำเนินการต่อ การดำเนินการที่ผู้ใช้เริ่มต้น |
mediaPlayback
| เล่นหนังสือเสียง พอดแคสต์ หรือเพลง |
mediaProjection
| บันทึกวิดีโอการแสดงผลของอุปกรณ์ในช่วงเวลาสั้นๆ |
phoneCall
| จัดการสายโทรศัพท์ที่สนทนาอยู่ |
Kotlin
Android 10 มีการอัปเดตต่อไปนี้สำหรับการพัฒนาแอปด้วย Kotlin
คำอธิบายประกอบความสามารถในการเว้นว่างสำหรับ API ของ libcore
Android 10 ปรับปรุงความครอบคลุมของคำอธิบายประกอบความสามารถในการเว้นว่างใน SDK สำหรับ API ของ libcore คำอธิบายประกอบเหล่านี้ช่วยให้นักพัฒนาแอปที่ใช้การวิเคราะห์ความสามารถในการเว้นว่างของ Kotlin หรือ Java ใน Android Studio ได้รับข้อมูลเกี่ยวกับค่า Null เมื่อโต้ตอบกับ API เหล่านี้
โดยปกติแล้ว การละเมิดสัญญาเกี่ยวกับค่า Null ใน Kotlin จะส่งผลให้เกิดข้อผิดพลาดในการคอมไพล์ ระบบจะเพิ่มเฉพาะคำอธิบายประกอบ @RecentlyNullable และ @RecentlyNonNull เพื่อให้มั่นใจว่าโค้ดที่มีอยู่จะใช้งานร่วมกันได้ ซึ่งหมายความว่า การละเมิดความสามารถในการเว้นว่างจะทำให้เกิดประกาศเตือนแทนที่จะเป็นข้อผิดพลาด
นอกจากนี้ คำอธิบายประกอบ @RecentlyNullable หรือ @RecentlyNonNull ที่เพิ่มใน Android 9 จะเปลี่ยนเป็น @Nullable และ @NonNull ตามลำดับ
ซึ่งหมายความว่าใน Android 10 ขึ้นไป การละเมิดความสามารถในการเป็นค่าว่าง
จะทำให้เกิดข้อผิดพลาดแทนที่จะเป็นคำเตือน
ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงคำอธิบายประกอบได้ที่ ตอนนี้ SDK ของ Android Pie รองรับ Kotlin มากขึ้นแล้ว ในบล็อกของนักพัฒนาแอป Android
NDK
Android 10 มีการเปลี่ยนแปลง NDK ต่อไปนี้
การแก้ไขข้อบกพร่องของการเป็นเจ้าของตัวบอกไฟล์ที่ดียิ่งขึ้น
Android 10 เพิ่ม fdsan ซึ่งช่วยให้คุณค้นหาและแก้ไขปัญหาการเป็นเจ้าของตัวอธิบายไฟล์ได้ง่ายขึ้น
ข้อบกพร่องที่เกี่ยวข้องกับการจัดการความเป็นเจ้าของตัวบอกไฟล์อย่างไม่เหมาะสม ซึ่งมักจะแสดงให้เห็นเป็นข้อบกพร่อง use-after-close และ double-close นั้นคล้ายกับการจัดสรรหน่วยความจำ use-after-free และข้อบกพร่อง double-free แต่มีแนวโน้มที่จะวินิจฉัยและแก้ไขได้ยากกว่ามาก fdsan พยายามตรวจหาและ/หรือป้องกันการจัดการตัวบอกไฟล์อย่างไม่เหมาะสม โดยการบังคับใช้ความเป็นเจ้าของตัวบอกไฟล์
ดูข้อมูลเพิ่มเติมเกี่ยวกับการขัดข้องที่เกี่ยวข้องกับปัญหาเหล่านี้ได้ที่ ตรวจพบข้อผิดพลาดโดย fdsan ดูข้อมูลเพิ่มเติมเกี่ยวกับ fdsan ได้ที่หน้า Googlesource เกี่ยวกับ fdsan
ELF TLS
แอปพลิเคชันที่สร้างขึ้นโดยใช้ NDK ที่มีระดับ API 29 เป็นอย่างต่ำจะใช้ ELF TLS แทน emutls ได้ เราได้เพิ่มการรองรับตัวลิงก์แบบไดนามิกและแบบคงที่เพื่อรองรับ
วิธีจัดการตัวแปรเฉพาะเธรดนี้
สำหรับแอปที่สร้างขึ้นสำหรับ API ระดับ 28 และต่ำกว่า เราได้ปรับปรุง
เพื่อให้ libgcc/compiler-rt แก้ปัญหาบางอย่างของ emutls ได้
ดูข้อมูลเพิ่มเติมได้ที่ การเปลี่ยนแปลงใน Android สำหรับนักพัฒนาซอฟต์แวร์ NDK
รันไทม์
Android 10 มีการเปลี่ยนแปลงรันไทม์ต่อไปนี้
การทริกเกอร์ระบบจัดการหน่วยความจำที่ไม่ใช้แล้วตาม Mallinfo
เมื่อออบเจ็กต์ Java ของแพลตฟอร์มขนาดเล็กอ้างอิงออบเจ็กต์ขนาดใหญ่ในฮีป C++ มักจะเรียกคืนออบเจ็กต์ C++ ได้ก็ต่อเมื่อมีการรวบรวมออบเจ็กต์ Java และเช่น มีการสิ้นสุด ในรุ่นก่อนหน้า แพลตฟอร์มจะประมาณขนาด ของออบเจ็กต์ C++ จำนวนมากที่เชื่อมโยงกับออบเจ็กต์ Java การประมาณนี้ไม่ถูกต้องเสมอไป และบางครั้งทำให้การใช้งานหน่วยความจำเพิ่มขึ้นอย่างมาก เนื่องจากแพลตฟอร์มไม่สามารถล้างข้อมูลที่ไม่ใช้แล้วได้เมื่อควรทำ
ใน Android 10 ตัวเก็บขยะ (GC) จะติดตามขนาดทั้งหมด
ของฮีปที่ระบบ malloc() จัดสรร เพื่อให้มั่นใจว่าการจัดสรร malloc() ขนาดใหญ่
จะรวมอยู่ในการคำนวณที่ทริกเกอร์ GC เสมอ แอปที่สลับการจัดสรร C++ จำนวนมากกับการดำเนินการ Java อาจเห็นความถี่ของระบบจัดการหน่วยความจำที่ไม่ใช้แล้วเพิ่มขึ้นด้วย ส่วนแอปอื่นๆ อาจเห็นว่าจำนวนการเข้าชมลดลงเล็กน้อย
การทดสอบและการแก้ไขข้อบกพร่อง
Android 10 มีการปรับปรุงต่อไปนี้สำหรับการทดสอบและการแก้ไขข้อบกพร่อง
การปรับปรุงสำหรับการติดตามระบบในอุปกรณ์
ตั้งแต่ Android 10 เป็นต้นไป คุณสามารถระบุขีดจำกัดสำหรับขนาดและ ระยะเวลาของการติดตามเมื่อทำการ การติดตามระบบในอุปกรณ์ เมื่อคุณระบุค่าใดค่าหนึ่ง ระบบจะทำการติดตามแบบยาว โดยจะคัดลอกบัฟเฟอร์การติดตามไปยังไฟล์ปลายทางเป็นระยะๆ ขณะที่บันทึกการติดตาม การติดตามจะเสร็จสมบูรณ์ เมื่อถึงขีดจำกัดขนาดหรือระยะเวลาที่คุณระบุ
ใช้พารามิเตอร์เพิ่มเติมเหล่านี้เพื่อทดสอบกรณีการใช้งานที่แตกต่างจากที่คุณจะทดสอบ ด้วยการติดตามมาตรฐาน เช่น คุณอาจกำลังวินิจฉัยข้อบกพร่องด้านประสิทธิภาพ ที่เกิดขึ้นหลังจากที่แอปทำงานเป็นเวลานานเท่านั้น ใน กรณีนี้ คุณสามารถบันทึกการติดตามแบบยาวตลอดทั้งวัน แล้ววิเคราะห์ ตัวจัดกำหนดการ CPU, กิจกรรมของดิสก์, เธรดของแอป และข้อมูลอื่นๆ ในรายงานเพื่อ ช่วยระบุสาเหตุของข้อบกพร่อง
ใน Android 10 ขึ้นไป ระบบจะบันทึกไฟล์การติดตามในรูปแบบที่ เปิดได้ด้วย Perfetto ซึ่งเป็น โปรเจ็กต์โอเพนซอร์สสำหรับการวัดประสิทธิภาพและการติดตาม คุณสามารถแปลงไฟล์การติดตาม Perfetto เป็นรูปแบบ Systrace ได้
การปรับปรุง TextClassifier
Android 10 มีฟังก์ชันการจัดประเภทข้อความเพิ่มเติมในอินเทอร์เฟซ
TextClassifier
การตรวจหาภาษา
วิธี
detectLanguage()
นี้ทำงานคล้ายกับวิธีการจัดประเภทที่มีอยู่ก่อนหน้านี้ โดยจะรับออบเจ็กต์ TextLanguage.Request
และแสดงผลออบเจ็กต์ TextLanguage
TextLanguage ออบเจ็กต์ประกอบด้วยรายการคู่ที่เรียงลำดับ แต่ละคู่
ประกอบด้วยภาษาและคะแนนความเชื่อมั่นที่สอดคล้องกันสำหรับการจัดประเภท
การดำเนินการในการสนทนาที่แนะนำ
วิธี
suggestConversationActions()
นี้ทำงานคล้ายกับวิธีการจัดประเภทที่มีอยู่ โดยจะรับออบเจ็กต์ ConversationActions.Request
และแสดงผลออบเจ็กต์ ConversationActions
ออบเจ็กต์ ConversationActions
ประกอบด้วยรายการออบเจ็กต์
ConversationAction
ออบเจ็กต์ ConversationAction แต่ละรายการมี
การดำเนินการที่แนะนำที่อาจเกิดขึ้นและคะแนนความเชื่อมั่น
ช่วยตอบ/การดำเนินการอัจฉริยะในการแจ้งเตือน
Android 9 เปิดตัวความสามารถในการแสดงการตอบกลับที่แนะนำภายใน การแจ้งเตือน Android 10 ได้ขยายความสามารถนี้ด้วยการเพิ่มความสามารถในการ รวมการดำเนินการที่แนะนำตามความตั้งใจ นอกจากนี้ แพลตฟอร์มยังสามารถ สร้างคำแนะนำเหล่านี้ได้โดยอัตโนมัติ แอปจะยังคงให้คำแนะนำของตัวเองหรือเลือกไม่รับคำแนะนำที่ระบบสร้างขึ้นได้API ที่ใช้สร้างคำตอบเหล่านี้เป็นส่วนหนึ่งของ
TextClassifier
และยังเปิดให้นักพัฒนาแอปใช้งานโดยตรงใน Android 10 ด้วย
โปรดอ่านข้อมูลเพิ่มเติมในส่วนเกี่ยวกับการปรับปรุง TextClassifier
หากแอปมีคำแนะนำของตัวเอง แพลตฟอร์มจะไม่สร้างคำแนะนำอัตโนมัติ หากไม่ต้องการให้การแจ้งเตือนของแอปแสดง
การตอบกลับหรือการดำเนินการที่แนะนำ คุณสามารถเลือกไม่รับการตอบกลับ
และการดำเนินการที่ระบบสร้างขึ้นได้โดยใช้
setAllowGeneratedReplies()
และ
setAllowSystemGeneratedContextualActions()