ฟีเจอร์และ 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 มีวิธีแบบคงที่ในการเข้าถึงฟังก์ชันการทำงานที่ไม่มีอยู่ใน API ของ javax.net.ssl ทั่วไป ชื่อของคลาสเหล่านี้จะอนุมานได้ว่าเป็นรูปแบบพหูพจน์ของคลาส 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 เพิ่มความสามารถในการรวบรวมข้อมูลเกี่ยวกับคุณภาพการเรียกระบบย่อยมัลติมีเดีย (IMS) ของ IP อย่างต่อเนื่อง ซึ่งรวมถึงคุณภาพในการรับและจากเครือข่ายในอุปกรณ์ที่รองรับฟีเจอร์นี้

การสกรีนสายเรียกเข้าและหมายเลขผู้โทร

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 ช่วยให้แอปสามารถบันทึกการเล่นเสียงจากแอปอื่นๆ ได้ ดูข้อมูลทั้งหมดได้ที่การบันทึกการเล่น

Seekbar ในการแจ้งเตือน 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++ ของ 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 เป็นต้นไป กล้องจะสามารถเก็บข้อมูลความลึกของรูปภาพไว้ในไฟล์แยกต่างหาก โดยใช้สคีมาใหม่ชื่อ Dynamic Depth Format (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 เปิดตัว API getRecommendedTimeoutMillis() วิธีการนี้รองรับการหมดเวลาที่กำหนดโดยผู้ใช้สำหรับองค์ประกอบ UI แบบโต้ตอบและไม่โต้ตอบ ค่าที่แสดงผลจะขึ้นอยู่กับทั้งค่ากําหนดของผู้ใช้และ API บริการการช่วยเหลือพิเศษ

การปรับปรุงฟีเจอร์ป้อนข้อความอัตโนมัติ

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

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

คุณสามารถใช้แฟล็ก 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

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 ทางลัด API ได้มาแทนที่ Direct Share API

Sharing Shortcuts API ช่วยให้แอปเผยแพร่เป้าหมายการแชร์โดยตรงล่วงหน้าแทนที่จะดึงข้อมูลตามคำขอ ShortcutManager ทํางานดังนี้ เนื่องจาก API ทั้ง 2 อย่างมีความคล้ายคลึงกัน เราจึงขยาย ShortcutInfo API เพื่อให้ใช้ฟีเจอร์ทั้งสองได้ง่ายขึ้น เมื่อใช้ 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

คำอธิบายประกอบความสามารถในการเว้นว่างสำหรับ libcore API

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

TLS ของ ELF

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

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

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