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

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

API แนวคิดสาธารณะ

สำหรับ Android 10 ผู้ให้บริการด้านความปลอดภัย Conscrypt จะมี API สาธารณะสำหรับฟังก์ชันการทำงาน TLS

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

เพิ่มเติม

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

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

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

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

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

API คำแนะนำเครือข่าย Wi-Fi

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

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

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

Android 10 ให้คุณแนะนำโมเด็มที่ใช้ เวลาในการตอบสนอง

Android 10 ขยาย API การล็อก Wi-Fi เพื่อรองรับประสิทธิภาพสูงอย่างมีประสิทธิภาพ และโหมดเวลาในการตอบสนองต่ำ ปิดใช้โหมดประหยัดพลังงาน Wi-Fi สำหรับโหมดประสิทธิภาพสูงและ โหมดเวลาในการตอบสนองต่ำและการเพิ่มประสิทธิภาพเวลาในการตอบสนองเพิ่มเติมอาจเปิดใช้อยู่เมื่อเวลาในการตอบสนองต่ำ ทั้งนี้ขึ้นอยู่กับการรองรับโมเด็ม

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

การค้นหาเฉพาะทางในรีโซลเวอร์ DNS

Android 10 เพิ่มการรองรับในตัวสำหรับการค้นหา DNS เฉพาะทางโดยใช้ ทั้งการค้นหา cleartext และโหมด DNS-over-TLS ก่อนหน้านี้ DNS ของแพลตฟอร์ม รีโซลเวอร์รองรับระเบียน A และ AAAA เท่านั้น ซึ่งทำให้ค้นหาเฉพาะ IP ได้ ที่เชื่อมโยงกับชื่อ แต่ไม่รองรับประเภทระเบียนอื่น DnsResolver API ให้ความละเอียดแบบทั่วไปแบบไม่พร้อมกัน ซึ่งช่วยให้คุณค้นหา SRV, NAPTR และประเภทระเบียนอื่นๆ ได้ โปรดทราบว่าการแยกวิเคราะห์การตอบกลับเป็นการดำเนินการที่แอปจะต้องดำเนินการต่อ

สำหรับแอปที่ใช้ NDK โปรดดู android_res_nsend

เชื่อมต่อ Wi-Fi ได้อย่างง่ายดาย

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

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

API การเชื่อมต่อ Wi-Fi Direct

คลาส 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);

Bluetooth LE Connection Oriented Channels (CoC)

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

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

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

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

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

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

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

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

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

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

Seekbar ในการแจ้งเตือน MediaStyle

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

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

API MIDI แบบเนทีฟ

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 ซึ่งระบบจะรายงานสถานะความร้อนอย่างต่อเนื่องตั้งแต่ระดับปานกลางไปจนถึงรุนแรง ร้ายแรง ฉุกเฉิน และการปิด

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

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

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

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

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

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

  • รองรับรูปแบบสตรีม Y8 เพื่อปรับปรุงประสิทธิภาพของหน่วยความจำ
  • รองรับการจับภาพ DNG แบบดิบแบบโมโนโครม
  • การแนะนำการแจงนับ MONO และ NIR CFA เพื่อแยกความแตกต่างระหว่างแบบปกติ กล้องโมโนโครมและกล้องอินฟราเรดแบบใกล้

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

รูปแบบความลึกแบบไดนามิก

ตั้งแต่ Android 10 เป็นต้นไป กล้องจะสามารถจัดเก็บข้อมูลความลึกสำหรับรูปภาพใน Android โดยใช้สคีมาใหม่ที่ชื่อว่า Dynamic Depth Format (DDF) แอปสามารถ ขอทั้งรูปภาพ JPG และข้อมูลเมตาความลึกของภาพ โดยใช้ข้อมูลนั้น ใช้การเบลอที่ต้องการในกระบวนการหลังการประมวลผลโดยไม่ต้องแก้ไขต้นฉบับ ข้อมูลภาพ

หากต้องการอ่านข้อกำหนดของรูปแบบนี้ โปรดดู รูปแบบความลึกแบบไดนามิก

รูปแบบไฟล์ภาพที่มีประสิทธิภาพสูง

รูปแบบไฟล์รูปภาพที่มีประสิทธิภาพสูง (HEIF) คือรูปแบบรูปภาพและวิดีโอมาตรฐาน ซึ่งจะมีการเข้ารหัสที่มีคุณภาพสูงกว่าและขนาดไฟล์ที่เล็กลงเมื่อเปรียบเทียบกับ รูปแบบไฟล์อื่นๆ

ดูข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบไฟล์ได้ที่ HEIC

การปรับปรุงกล้องหลายตัว

Android 10 ปรับปรุงการรวมกล้องหลายตัวให้เป็นกล้องเสมือนจริงกล้องเดียว ซึ่งเป็นฟีเจอร์ที่เปิดตัวใน Android 9 (API ระดับ 28) มีการเพิ่มรายการต่อไปนี้ใน เวลา API กล้องถ่ายรูป 2:

  • isSessionConfigurationSupported(SessionConfiguration sessionConfig) - ช่วยให้คุณค้นหาได้ว่าจะใช้การกําหนดค่าเซสชันที่ส่งเพื่อสร้างเซสชันการจับภาพด้วยกล้องได้หรือไม่

  • LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID - เปิดใช้ คุณสามารถกำหนดรหัสของกล้องจริงที่ใช้งานอยู่ซึ่งสำรองข้อมูลเชิงตรรกะ กล้อง คุณสามารถใช้รหัสที่ส่งคืนเพื่อขอสตรีมเชิงตรรกะและ การสตรีมกล้องย่อยทางกายภาพเพื่อประหยัดพลังงานได้ดียิ่งขึ้น

API บริการช่วยเหลือพิเศษ

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

การแจ้งคีย์รายการ AccessibilityNodeInfo

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

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

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

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

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

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

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

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

การเพิ่มประสิทธิภาพตัวควบคุมแป้นพิมพ์แบบยืดหยุ่น

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

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

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

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

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

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

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

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

คุณสามารถรองรับกรณีที่แอปพลิเคชันใช้กิจกรรมหลายรายการเพื่อแสดงชื่อผู้ใช้ รหัสผ่าน และช่องอื่นๆ ได้โดยใช้ Flag SaveInfo.FLAG_DELAY_SAVE

การโต้ตอบของผู้ใช้กับ UI บันทึก

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

รองรับการอัปเดตชุดข้อมูล

การป้อนข้อความอัตโนมัติอัปเดตรหัสผ่านที่มีอยู่ได้ เช่น หากผู้ใช้มีรหัสผ่านที่บันทึกไว้อยู่แล้วและบันทึกรหัสผ่านใหม่ ระบบจะแจ้งให้ผู้ใช้อัปเดตรหัสผ่านที่มีอยู่แทนที่จะบันทึกรหัสผ่านใหม่

การปรับปรุงการจัดประเภทช่อง

Android 10 มีการปรับปรุง Field Classification API ดังต่อไปนี้

ตัวสร้าง UserData.Builder

UserData.Builder มีการเปลี่ยนแปลงให้สอดคล้องกับรูปแบบ Builder มากขึ้น

อนุญาตให้แมปค่ากับรหัสหมวดหมู่หลายประเภท

เมื่อใช้ UserData.Builder ใน Android 10 ตอนนี้คุณสามารถแมปค่ากับรหัสหมวดหมู่หลายประเภทได้แล้ว ใน รุ่นก่อนหน้า มีข้อยกเว้นหากมีการเพิ่มค่ามากกว่าหนึ่งครั้ง

ปรับปรุงการรองรับหมายเลขบัตรเครดิต

ตอนนี้การจัดประเภทช่องสามารถตรวจจับตัวเลข 4 หลักที่เป็นตัวเลข 4 หลักสุดท้ายได้แล้ว หมายเลขบัตรเครดิต

รองรับการจัดประเภทช่องเฉพาะแอป

การเพิ่ม Android 10 FillResponse.setUserData() ซึ่งช่วยให้คุณตั้งค่าข้อมูลผู้ใช้เฉพาะแอปสำหรับระยะเวลาของเซสชันได้ วิธีนี้ช่วยให้บริการป้อนข้อความอัตโนมัติตรวจหาประเภทของช่องที่มีแอปเฉพาะ เนื้อหา

การควบคุม UI และระบบ

Android 10 มีการปรับปรุงอินเทอร์เฟซผู้ใช้ดังต่อไปนี้

รองรับตัวพิมพ์ใหญ่ของ JVMTI PopFrame

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

API การควบคุมพื้นผิว

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

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

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

การตรวจจับโหมดแสดงภาพแขวนใน WebView

Android 10 เปิดตัว WebViewRenderProcessClient Abstract Class ซึ่งสามารถใช้เพื่อตรวจสอบว่า 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
แสดงการตั้งค่าทั้งหมดที่เกี่ยวข้องกับ Near Field Communication (NFC)
ACTION_VOLUME
แสดงการตั้งค่าระดับเสียงสำหรับสตรีมเสียงทั้งหมด

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

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

API ทางลัดการแชร์

API ทางลัดการแชร์ จะแทนที่แชร์โดยตรง API

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

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

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

เป้าหมายส่วนแบ่งโดยตรง

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

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

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

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

ดูการเพิ่มตัวอย่าง Rich Text

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

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

ธีมมืด

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

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

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

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

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

Kotlin

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

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

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

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

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

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

NDK

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

ปรับปรุงการดีบักการเป็นเจ้าของข้อบ่งชี้ไฟล์

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

ข้อบกพร่องที่เกี่ยวข้องกับการจัดการการเป็นเจ้าของข้อบ่งชี้ไฟล์อย่างไม่ถูกต้อง ซึ่งมีแนวโน้มที่จะแสดงออกมาให้เห็น use-after-close และ d Double-close นั้นคล้ายกับการจัดสรรหน่วยความจำ Use After Free และข้อบกพร่องในการซ้ำซ้อน แต่ มีแนวโน้มที่จะยากกว่า วินิจฉัยและแก้ไข 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 การประมาณนี้ไม่ใช่ค่าที่กำหนด ถูกต้อง และบางครั้งก็ส่งผลให้มีการใช้หน่วยความจำเพิ่มขึ้นอย่างมาก เนื่องจาก จัดการขยะไม่ได้ทั้งที่ควรได้รับ

เครื่องมือรวบรวมขยะ (GC) จะติดตามขนาดโดยรวมใน Android 10 ของฮีปที่ malloc() จัดสรรโดยระบบเพื่อให้แน่ใจว่า malloc() มีขนาดใหญ่ การจัดสรรจะรวมอยู่ในการคำนวณการทริกเกอร์ GC เสมอ การสอดประสานของแอป การจัดสรร C++ จำนวนมากด้วยการดำเนินการของ Java อาจมี มาจากความถี่ในการเก็บขยะ แอปอื่นๆ อาจเห็นตัวเลขลดลงเล็กน้อย

การทดสอบและการแก้ไขข้อบกพร่อง

Android 10 มีการปรับปรุงต่อไปนี้สำหรับการทดสอบและการแก้ไขข้อบกพร่อง

การปรับปรุงการติดตามระบบในอุปกรณ์

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

ใช้พารามิเตอร์เพิ่มเติมเหล่านี้เพื่อทดสอบกรณีการใช้งานต่างๆ ที่ต่างจากที่คุณทดสอบ ด้วยการติดตามมาตรฐาน เช่น คุณอาจกำลังวินิจฉัยข้อบกพร่องด้านประสิทธิภาพ ซึ่งเกิดขึ้นหลังจากที่แอปทำงานเป็นระยะเวลานานเท่านั้น ในกรณีนี้ คุณสามารถบันทึกการติดตามแบบยาวตลอดทั้งวัน จากนั้นวิเคราะห์เครื่องมือจัดตารางเวลาของ CPU, กิจกรรมของดิสก์, เทรดของแอป และข้อมูลอื่นๆ ในรายงานเพื่อช่วยระบุสาเหตุของข้อบกพร่อง

ใน Android 10 ขึ้นไป ไฟล์การติดตามจะบันทึกในรูปแบบที่ จะเปิดได้ด้วย Perfetto ซึ่งเป็น โปรเจ็กต์โอเพนซอร์สสำหรับการวัดคุมประสิทธิภาพและการติดตาม คุณสามารถ แปลงไฟล์การติดตาม Perfetto เป็น Systrace format [รูปแบบ]

การปรับปรุง TextClassifier

Android 10 มีฟังก์ชันการจำแนกประเภทข้อความเพิ่มเติมใน TextClassifier ของ Google

การตรวจหาภาษา

detectLanguage() จะทำงานคล้ายกับวิธีการจัดประเภทที่มีอยู่แล้ว โดยรับออบเจ็กต์ TextLanguage.Request และแสดงผลออบเจ็กต์ TextLanguage

ออบเจ็กต์ TextLanguage รายการประกอบด้วยรายการคู่อันดับ แต่ละคู่จะมีภาษาและคะแนนความเชื่อมั่นที่สอดคล้องกันสำหรับการแยกประเภท

การดำเนินการที่แนะนำกับการสนทนา

suggestConversationActions() จะทำงานคล้ายกับวิธีการจัดประเภทที่มีอยู่ ได้รับ ConversationActions.Request และแสดงผล ConversationActions ออบเจ็กต์

ConversationActions ประกอบด้วยรายการ ConversationAction ออบเจ็กต์ ออบเจ็กต์ ConversationAction แต่ละรายการมีแท็ก การดำเนินการที่แนะนำและคะแนนความเชื่อมั่น

ฟีเจอร์ช่วยตอบ/การดำเนินการในการแจ้งเตือน

Android 9 ได้เปิดตัวความสามารถในการแสดงการตอบกลับที่แนะนำภายใน การแจ้งเตือน Android 10 เพิ่มเติมขึ้นมาด้วยความสามารถในการ รวมการดำเนินการตามความตั้งใจที่แนะนำ นอกจากนี้ แพลตฟอร์มยังสามารถ จะสร้างคำแนะนำเหล่านี้โดยอัตโนมัติ แอปยังคงสามารถให้บริการ คำแนะนำ หรือเลือกไม่ใช้คำแนะนำที่ระบบสร้างขึ้น

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

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