ฟีเจอร์และ API ของ Android 10

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 ครั้งใหญ่ที่มาพร้อมประโยชน์ด้านประสิทธิภาพและความปลอดภัยที่เพิ่มขึ้น การเปรียบเทียบของเราแสดงให้เห็นว่า TLS 1.3 สร้างการเชื่อมต่อที่ปลอดภัยได้เร็วขึ้นถึง 40% เมื่อเทียบกับ TLS 1.2

ดูรายละเอียดเพิ่มเติมเกี่ยวกับการใช้งาน TLS 1.3 ได้ที่ส่วน TLS ในหน้าการเปลี่ยนแปลงลักษณะการทำงานสำหรับแอปทั้งหมด

Conscrypt API สาธารณะ

ตั้งแต่ Android 10 เป็นต้นไป ผู้ให้บริการรักษาความปลอดภัย Conscrypt จะมี API สาธารณะสําหรับฟังก์ชันการทํางานของ TLS

คอลเล็กชันคลาสในส่วน android.net.ssl มีเมธอดแบบคงที่เพื่อเข้าถึงฟังก์ชันการทำงานที่ไม่มีให้ใช้งานจาก javax.net.sslAPI ทั่วไป ชื่อของคลาสเหล่านี้จะอนุมานได้ว่าเป็นรูปแบบพหูพจน์ของคลาส javax.net.ssl ที่เกี่ยวข้อง เช่น โค้ดที่ดำเนินการกับอินสแตนซ์ของ javax.net.ssl.SSLSocket สามารถใช้เมธอดจาก SSLSockets แทนได้

เพิ่มเติม

ฟีเจอร์การเชื่อมต่อ

Android 10 มีการปรับปรุงหลายอย่างที่เกี่ยวข้องกับเครือข่ายและการเชื่อมต่อ

API การเชื่อมต่อเครือข่าย Wi-Fi

Android 10 เพิ่มการรองรับการเชื่อมต่อแบบเพียร์ทูเพียร์ ฟีเจอร์นี้ช่วยให้แอปของคุณแจ้งให้ผู้ใช้เปลี่ยนจุดเข้าใช้งานที่อุปกรณ์เชื่อมต่ออยู่ได้โดยใช้ WifiNetworkSpecifier เพื่ออธิบายพร็อพเพอร์ตี้ของเครือข่ายที่ขอ การเชื่อมต่อแบบ peer-to-peer ใช้เพื่อวัตถุประสงค์ที่ไม่ใช่การจัดหาเครือข่าย เช่น การกําหนดค่าการเริ่มต้นระบบสําหรับอุปกรณ์รอง เช่น ฮาร์ดแวร์ Chromecast และ Google Home

ดูข้อมูลเพิ่มเติมได้ที่ Wi-Fi Network Request API สำหรับการเชื่อมต่อแบบ peer-to-peer

Wi-Fi Network Suggestion API

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์นี้ได้ที่หัวข้อแนะนำ Wi-Fi

การปรับปรุงโหมดประสิทธิภาพสูงและเวลาในการตอบสนองต่ำของ Wi-Fi

Android 10 ให้คุณบอกใบ้แก่โมเด็มพื้นฐานเพื่อลดเวลาในการตอบสนองได้

Android 10 ขยาย Wi-Fi Lock API เพื่อรองรับโหมดประสิทธิภาพสูงและโหมดเวลาในการตอบสนองต่ำอย่างมีประสิทธิภาพ ระบบจะปิดใช้โหมดประหยัดพลังงานของ 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 เข้ากับขั้นตอนการตั้งค่าและการจัดสรรได้โดยใช้ Intent ACTION_PROCESS_WIFI_EASY_CONNECT_URI

ดูข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์นี้ได้ที่Wi-Fi Easy Connect

Wi-Fi Direct Connection API

คลาส WifiP2pConfig และ WifiP2pManager API มีการอัปเดตใน 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 เปลี่ยนวิธีจัดการความตั้งใจในการโทร เราเลิกใช้งานการออกอากาศ NEW_OUTGOING_CALL แล้วและแทนที่ด้วย CallRedirectionService API CallRedirectionService API มีอินเทอร์เฟซให้คุณแก้ไขสายเรียกออกที่แพลตฟอร์ม Android ดำเนินการ เช่น แอปของบุคคลที่สามอาจยกเลิกการโทรและเปลี่ยนเส้นทางการโทรผ่าน VoIP

การปรับปรุงการสร้างไฟล์ในพื้นที่เก็บข้อมูลภายนอก

นอกจากการเปิดตัวพื้นที่เก็บข้อมูลที่กำหนดขอบเขตแล้ว Android 10 ยังเพิ่มความสามารถต่อไปนี้ที่เกี่ยวข้องกับพื้นที่เก็บข้อมูลภายนอก

  • คุณสามารถใช้IS_PENDING Flag เพื่อให้สิทธิ์เข้าถึงไฟล์สื่อแบบพิเศษแก่แอปขณะที่เขียนไฟล์ลงในดิสก์
  • หากทราบตำแหน่งที่ควรจัดเก็บไฟล์ คุณสามารถให้คำแนะนำแก่ระบบเกี่ยวกับตำแหน่งที่จะจัดเก็บไฟล์ที่เขียนใหม่
  • อุปกรณ์เก็บข้อมูลภายนอกแต่ละเครื่องจะมีชื่อวอลุ่มที่ไม่ซ้ำกัน

สื่อและกราฟิก

Android 10 เปิดตัวฟีเจอร์และ API ใหม่สำหรับสื่อและกราฟิกดังต่อไปนี้

การแชร์อินพุตเสียง

Android 10 เพิ่มความสามารถในการแชร์อินพุตเสียงพร้อมกันสำหรับ 2 แอป ดูข้อมูลทั้งหมดได้ที่การแชร์อินพุตเสียง

การบันทึกการเล่นเสียง

Android 10 ช่วยให้แอปสามารถบันทึกการเล่นเสียงจากแอปอื่นๆ ได้ ดูข้อมูลทั้งหมดได้ที่การบันทึกการเล่น

แถบเลื่อนในการแจ้งเตือน MediaStyle

ตั้งแต่ Android 10 เป็นต้นไป การแจ้งเตือน MediaStyle จะแสดงแถบเลื่อน แถบเลื่อนแสดงความคืบหน้าในการเล่นจาก PlaybackState.getPosition() และในบางกรณี คุณสามารถใช้แถบเลื่อนเพื่อกรอไปยังตำแหน่งที่ต้องการในโปรแกรมที่กำลังเล่น ลักษณะและลักษณะการทํางานของแถบเลื่อนควบคุมโดยกฎต่อไปนี้

  • แถบเลื่อนจะปรากฏขึ้นหากมี MediaSession ที่ใช้งานอยู่และระยะเวลาของ MediaSession (ที่ระบุโดย MediaMetadata.METADATA_KEY_DURATION) มากกว่า 0 ซึ่งหมายความว่าแถบจะไม่ปรากฏในสตรีมที่ไม่ทราบเวลาสิ้นสุด เช่น สตรีมแบบสดและการออกอากาศทางวิทยุ
  • หากเซสชันใช้ ACTION_SEEK_TO ผู้ใช้จะลากแถบเลื่อนเพื่อควบคุมตำแหน่งการเล่นได้

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 เพื่อตรวจสอบการเปลี่ยนแปลงในอุปกรณ์และดำเนินการเพื่อรักษาระดับการใช้พลังงานให้ต่ำลงเพื่อคืนอุณหภูมิให้ปกติ แอปลงทะเบียนโปรแกรมรับฟังใน PowerManager ซึ่งระบบจะรายงานสถานะความร้อนอย่างต่อเนื่องตั้งแต่ระดับปานกลางไปจนถึงรุนแรง ร้ายแรง ฉุกเฉิน และการปิด

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

Thermal API ต้องใช้เลเยอร์ HAL ของอุปกรณ์ใหม่ ซึ่งปัจจุบันรองรับในอุปกรณ์ Pixel ที่ใช้ Android 10 และเรากำลังทำงานร่วมกับพาร์ทเนอร์ผู้ผลิตอุปกรณ์เพื่อขยายการรองรับไปยังระบบนิเวศโดยรวมโดยเร็วที่สุด

กล้องและรูปภาพ

Android 10 เปิดตัวฟีเจอร์ใหม่ที่เกี่ยวข้องกับกล้องและรูปภาพดังต่อไปนี้

การรองรับกล้องโมโนโครม

Android 9 (API ระดับ 28) เปิดตัวความสามารถของกล้องโมโนโครมเป็นครั้งแรก Android 10 เพิ่มการปรับปรุงหลายอย่างในการรองรับกล้องโมโนโครม ดังนี้

  • รองรับรูปแบบสตรีม Y8 เพื่อปรับปรุงประสิทธิภาพหน่วยความจำ
  • รองรับการจับภาพโมโนโครมแบบ RAW ในรูปแบบ 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 ใหม่ต่อไปนี้ของบริการการช่วยเหลือพิเศษ

Flag ของคีย์เข้าถึง AccessibilityNodeInfo

ตั้งแต่ Android 10 เป็นต้นไป คุณสามารถเรียกใช้ isTextEntryKey() เพื่อระบุว่า AccessibilityNodeInfo หนึ่งๆ แสดงถึงแป้นป้อนข้อความที่เป็นส่วนหนึ่งของแป้นพิมพ์หรือปุ่มกดหรือไม่

ความคิดเห็นเกี่ยวกับการช่วยเหลือพิเศษที่อ่านออกเสียงในกล่องโต้ตอบ

ในกรณีที่ผู้ใช้ต้องดำเนินการกับทางลัดการช่วยเหลือพิเศษเพื่อเริ่มบริการการช่วยเหลือพิเศษ Android 10 จะอนุญาตให้กล่องโต้ตอบแสดงพร้อมกับข้อความแจ้งการอ่านออกเสียงหากบริการขอ

ทางลัดการช่วยเหลือพิเศษเมื่อเปิดใช้การไปยังส่วนต่างๆ ด้วยท่าทางสัมผัส

เมื่อเปิดใช้ฟีเจอร์การนําทางด้วยท่าทางใน Android 10 ปุ่มการช่วยเหลือพิเศษจะมองไม่เห็นหรือเลือกไม่ได้ หากต้องการเข้าถึงเมนูบริการการช่วยเหลือพิเศษ ผู้ใช้ต้องทําท่าทางสัมผัสอย่างใดอย่างหนึ่งต่อไปนี้

  • ใช้ 2 นิ้วปัดขึ้น
  • ใช้ 2 นิ้วปัดขึ้นแล้วค้างไว้

แป้นพิมพ์ลัดสำหรับการช่วยเหลือพิเศษของแป้นพิมพ์จริง

ใน Android 10 ผู้ใช้สามารถเรียกใช้แป้นพิมพ์ลัดสำหรับการช่วยเหลือพิเศษบนแป้นพิมพ์จริงได้โดยกด Control+Alt+Z

การปรับปรุงตัวควบคุมแป้นพิมพ์เสมือน

ใน Android 10 บริการการช่วยเหลือพิเศษจะขอให้แสดงแป้นพิมพ์บนหน้าจอได้แม้ว่าอุปกรณ์จะตรวจพบแป้นพิมพ์จริงที่ต่ออยู่ก็ตาม ผู้ใช้จะลบล้างลักษณะการทำงานนี้ได้

ระยะหมดเวลาการช่วยเหลือพิเศษที่ผู้ใช้กำหนด

Android 10 เปิดตัว getRecommendedTimeoutMillis() API วิธีการนี้รองรับการหมดเวลาที่กำหนดโดยผู้ใช้สำหรับองค์ประกอบ UI แบบโต้ตอบและไม่โต้ตอบ ค่าที่แสดงผลจะขึ้นอยู่กับทั้งค่ากําหนดของผู้ใช้และ API บริการการช่วยเหลือพิเศษ

การปรับปรุงการป้อนข้อความอัตโนมัติ

Android 10 มีการปรับปรุงบริการป้อนข้อความอัตโนมัติดังต่อไปนี้

คำขอป้อนข้อความอัตโนมัติที่เกี่ยวข้องกับความเข้ากันได้

คุณสามารถใช้ Flag FillRequest.FLAG_COMPATIBILITY_MODE_REQUEST เพื่อระบุว่ามีการสร้างคำขอป้อนข้อความอัตโนมัติผ่านโหมดความเข้ากันได้หรือไม่

บันทึกชื่อผู้ใช้และรหัสผ่านพร้อมกัน

คุณสามารถรองรับกรณีที่แอปพลิเคชันใช้กิจกรรมหลายรายการเพื่อแสดงชื่อผู้ใช้ รหัสผ่าน และช่องอื่นๆ ได้โดยใช้ Flag 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 มีการปรับปรุงอินเทอร์เฟซผู้ใช้ดังต่อไปนี้

รองรับขีดจํากัดของ JVMTI PopFrame

Android 10 เพิ่มการรองรับความสามารถของ can_pop_frames ในการใช้งาน JVMTI ของ Android เมื่อแก้ไขข้อบกพร่อง ฟีเจอร์นี้จะช่วยให้คุณเรียกใช้ฟังก์ชันอีกครั้งได้หลังจากหยุดชั่วคราวที่จุดหยุดพักและปรับตัวแปรภายใน ตัวแปรส่วนกลาง หรือการใช้งานฟังก์ชัน ดูข้อมูลเพิ่มเติมได้ที่หน้าอ้างอิง Pop Frame ของ Oracle

Surface Control API

Android 10 มี SurfaceControl API สำหรับระดับการเข้าถึงที่ต่ำของระบบคอมโพสิต (SurfaceFlinger) สำหรับผู้ใช้ส่วนใหญ่แล้ว SurfaceView เป็นวิธีที่ถูกต้องในการใช้ประโยชน์จากคอมโพสิต SurfaceControl API อาจมีประโยชน์ในบางกรณี เช่น

  • การซิงค์หลายแพลตฟอร์ม
  • การฝังแพลตฟอร์มข้ามกระบวนการ
  • การจัดการตลอดอายุระดับล่าง

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

การตรวจหาโปรแกรมแสดงผลของ WebView ค้าง

Android 10 เปิดตัวคลาสแบบ抽象 WebViewRenderProcessClient ซึ่งแอปสามารถใช้เพื่อตรวจจับว่า WebView ไม่ตอบสนองหรือไม่ วิธีใช้คลาสนี้

  1. กำหนดคลาสย่อยของคุณเองและใช้เมธอด onRenderProcessResponsive() และ onRenderProcessUnresponsive()
  2. แนบอินสแตนซ์ของ WebViewRenderProcessClient กับออบเจ็กต์ WebView อย่างน้อย 1 รายการ
  3. หาก WebView ไม่ตอบสนอง ระบบจะเรียกใช้เมธอด onRenderProcessUnresponsive() ของไคลเอ็นต์ โดยส่ง WebView และ WebViewRenderProcess (หาก WebView เป็นโปรเซสเดียว พารามิเตอร์ WebViewRenderProcess จะว่างเปล่า) แอปสามารถดําเนินการที่เหมาะสม เช่น แสดงกล่องโต้ตอบต่อผู้ใช้เพื่อถามว่าต้องการหยุดกระบวนการแสดงผลหรือไม่

หาก WebView ไม่ตอบสนอง ระบบจะเรียก onRenderProcessUnresponsive() เป็นระยะๆ (ไม่เกิน 1 ครั้งทุก 5 วินาที) แต่ไม่ดำเนินการใดๆ เพิ่มเติม หาก WebView ตอบสนองอีกครั้ง ระบบจะเรียก onRenderProcessResponsive() เพียงครั้งเดียว

แผงการตั้งค่า

Android 10 เปิดตัวแผงการตั้งค่า ซึ่งเป็น API ที่ช่วยให้แอปแสดงการตั้งค่าต่อผู้ใช้ในบริบทของแอปได้ ซึ่งทำให้ผู้ใช้ไม่ต้องไปที่การตั้งค่าเพื่อเปลี่ยนสิ่งต่างๆ เช่น NFC หรืออินเทอร์เน็ตมือถือเพื่อใช้แอป

รูปที่ 1 ผู้ใช้พยายามเปิดหน้าเว็บขณะที่อุปกรณ์ไม่ได้เชื่อมต่อเครือข่าย Chrome จะแสดงแผงการตั้งค่าการเชื่อมต่ออินเทอร์เน็ต

รูปที่ 2 ผู้ใช้สามารถเปิด Wi-Fi และเลือกเครือข่ายได้โดยไม่ต้องออกจากแอป Chrome

เช่น สมมติว่าผู้ใช้เปิดเว็บเบราว์เซอร์ขณะที่อุปกรณ์อยู่ในโหมดเครื่องบิน ก่อนที่จะมี 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
แสดงการตั้งค่าทั้งหมดที่เกี่ยวข้องกับการสื่อสารระยะใกล้ (NFC)
ACTION_VOLUME
แสดงการตั้งค่าระดับเสียงสำหรับสตรีมเสียงทั้งหมด

การปรับปรุงการแชร์

Android 10 มีการปรับปรุงการแชร์หลายอย่าง ดังนี้

Sharing Shortcuts API

Sharing Shortcuts API จะแทนที่ Direct Share API

Sharing Shortcuts API ช่วยให้แอปเผยแพร่เป้าหมายการแชร์โดยตรงล่วงหน้าแทนที่จะดึงข้อมูลตามคำขอ ShortcutManager ทํางานดังนี้ เนื่องจาก API 2 รายการนี้มีความคล้ายคลึงกัน เราจึงขยาย ShortcutInfo API เพื่อให้ใช้ฟีเจอร์ทั้ง 2 รายการได้ง่ายขึ้น เมื่อใช้ Sharing Shortcuts API คุณจะกำหนดหมวดหมู่หรือบุคคลให้กับเป้าหมายการแชร์ได้โดยตรง เป้าหมายการแชร์จะยังคงอยู่ในระบบจนกว่าแอปเดียวกันจะอัปเดตเป้าหมายหรือมีการถอนการติดตั้งแอป

กลไกการแชร์โดยตรงแบบเก่าจะยังคงใช้งานได้ แต่แอปที่ใช้กลไกดังกล่าวจะมีลำดับความสำคัญต่ำกว่าแอปที่ใช้ Sharing Shortcuts API

ShortcutInfo.Builder เพิ่มและปรับปรุงวิธีการเพื่อให้ข้อมูลเพิ่มเติมเกี่ยวกับเป้าหมายการแชร์

เป้าหมายการแชร์โดยตรง

คุณสามารถเผยแพร่ทางลัดแบบไดนามิกเป็นเป้าหมายการแชร์โดยตรงได้ โปรดดูเผยแพร่เป้าหมายการแชร์โดยตรง

ShortcutManagerCompat คือ AndroidX API ใหม่ที่เข้ากันได้แบบย้อนหลังกับ DirectShare API เดิม วิธีนี้เป็นวิธีที่แนะนำในการเผยแพร่เป้าหมายการแชร์

การแสดงตัวอย่างข้อความ

เมื่อแอปแชร์เนื้อหาข้อความ แอปสามารถแสดงตัวอย่างเนื้อหา (ไม่บังคับ) ใน UI ของชีตการแชร์

ดูการเพิ่มตัวอย่างข้อความแบบ Rich Text

ดูข้อมูลเพิ่มเติม

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่แอปแชร์ข้อมูลได้ที่การส่งข้อมูลอย่างง่ายไปยังแอปอื่นๆ และการรับข้อมูลอย่างง่ายจากแอปอื่นๆ

ธีมมืด

Android 10 มีธีมมืดที่ใช้ได้กับทั้ง UI ของระบบ Android และแอปที่ทำงานในอุปกรณ์ ดูข้อมูลทั้งหมดได้ที่ธีมมืด

ประเภทบริการที่ทำงานอยู่เบื้องหน้า

Android 10 เปิดตัวแอตทริบิวต์ไฟล์ Manifest foregroundServiceType ของ XML ซึ่งคุณรวมไว้ในคําจํากัดความของบริการที่เฉพาะเจาะจงหลายรายการ คุณสามารถกำหนดบริการที่ทำงานอยู่เบื้องหน้าหลายประเภทให้กับบริการหนึ่งๆ ได้ แต่ไม่ค่อยเหมาะสมนัก

ตารางต่อไปนี้แสดงประเภทบริการที่ทำงานอยู่เบื้องหน้าและบริการต่างๆ ที่ควรประกาศประเภทที่เฉพาะเจาะจง

ประเภทบริการที่ทำงานอยู่เบื้องหน้า ตัวอย่างกรณีการใช้งานสําหรับบริการที่ควรประกาศประเภทนี้
connectedDevice ตรวจสอบอุปกรณ์ติดตามการออกกำลังกายแบบสวมใส่ได้
dataSync ดาวน์โหลดไฟล์จากเครือข่าย
location ดำเนินการต่อจากการดำเนินการที่ผู้ใช้เริ่ม
mediaPlayback เล่นหนังสือเสียง พอดแคสต์ หรือเพลง
mediaProjection บันทึกวิดีโอของจอแสดงผลของอุปกรณ์เป็นระยะเวลาสั้นๆ
phoneCall จัดการสายที่โทรอยู่

Kotlin

Android 10 มีการอัปเดตต่อไปนี้สําหรับการพัฒนา Kotlin

คําอธิบายประกอบเกี่ยวกับ Nullability สําหรับ API ของ libcore

Android 10 ปรับปรุงความครอบคลุมของคำอธิบายประกอบเกี่ยวกับ Nullability ใน SDK สำหรับ libcore API คําอธิบายประกอบเหล่านี้ช่วยให้นักพัฒนาแอปที่ใช้การวิเคราะห์ Nullability ของ Kotlin หรือ Java ใน Android Studio รับข้อมูลเกี่ยวกับ Nullability ได้เมื่อโต้ตอบกับ API เหล่านี้

โดยปกติแล้ว การละเมิดสัญญาเกี่ยวกับ Nullability ใน Kotlin จะทำให้เกิดข้อผิดพลาดในการคอมไพล์ ระบบจะเพิ่มเฉพาะคำอธิบายประกอบ @RecentlyNullable และ @RecentlyNonNull เพื่อให้เข้ากันได้กับโค้ดที่มีอยู่ ซึ่งหมายความว่าการละเมิด Nullability จะส่งผลให้เกิดคำเตือนแทนข้อผิดพลาด

นอกจากนี้ คำอธิบายประกอบ @RecentlyNullable หรือ @RecentlyNonNull ที่เพิ่มใน Android 9 จะเปลี่ยนเป็น @Nullable และ @NonNull ตามลำดับ ซึ่งหมายความว่าใน Android 10 ขึ้นไป การละเมิด Nullability จะทำให้เกิดข้อผิดพลาดแทนคำเตือน

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงคำอธิบายประกอบได้ในตอนนี้ Android Pie SDK ใช้งาน Kotlin ได้ง่ายขึ้นในบล็อกของนักพัฒนาแอป Android

NDK

Android 10 มีการเปลี่ยนแปลง NDK ดังต่อไปนี้

การแก้ไขข้อบกพร่องการเป็นเจ้าของตัวระบุไฟล์ที่ดียิ่งขึ้น

Android 10 เพิ่ม fdsan ซึ่งจะช่วยให้คุณค้นหาและแก้ไขปัญหาการเป็นเจ้าของตัวระบุไฟล์ได้ง่ายขึ้น

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับการขัดข้องที่เกี่ยวข้องกับปัญหาเหล่านี้ได้ที่ข้อผิดพลาดที่ fdsan ตรวจพบ ดูข้อมูลเพิ่มเติมเกี่ยวกับ fdsan ได้ที่หน้า Googlesource เกี่ยวกับ fdsan

ELF TLS

แอปพลิเคชันที่สร้างขึ้นโดยใช้ NDK ที่มี API ระดับ 29 เป็นอย่างน้อยจะใช้ ELF TLS ได้แทน emutls เราได้เพิ่มการรองรับ linker แบบไดนามิกและแบบคงที่เพื่อรองรับวิธีจัดการตัวแปรระดับเธรดนี้

สำหรับแอปที่สร้างสำหรับ 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 ขยายการทำงานนี้ด้วยความสามารถในการรวมการดำเนินการตาม Intent ที่แนะนำ นอกจากนี้ แพลตฟอร์มยังสร้างคําแนะนําเหล่านี้ได้โดยอัตโนมัติ แอปจะยังคงแสดงคำแนะนำของตัวเองหรือเลือกไม่ใช้คำแนะนำที่ระบบสร้างขึ้นได้

API ที่ใช้สร้างการตอบกลับเหล่านี้เป็นส่วนหนึ่งของ TextClassifier และแสดงต่อนักพัฒนาแอปโดยตรงใน Android 10 ด้วย โปรดอ่านข้อมูลเพิ่มเติมในส่วนการปรับปรุง TextClassifier

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