ฟีเจอร์และ 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 ในหน้าการเปลี่ยนแปลงลักษณะการทำงานของแอปทั้งหมด

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 สำหรับการเชื่อมต่อแบบเพียร์ทูเพียร์

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

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 ที่เชื่อมโยงกับชื่อ แต่ไม่รองรับระเบียนประเภทอื่นๆ API ของ DnsResolver มีการแก้ไขแบบอะซิงโครนัสทั่วไป ซึ่งช่วยให้คุณค้นหา 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

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);

ช่องทางที่มุ่งเน้นการเชื่อมต่อ (CoC) ของ Bluetooth 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 ที่ใช้งานอยู่และระยะเวลาของ 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 มีการปรับปรุงอินเทอร์เฟซผู้ใช้ดังนี้

รองรับขีดจำกัด 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 สำหรับการแลกเปลี่ยนบัฟเฟอร์กับ Compositor ด้วยตนเอง ซึ่งเป็นทางเลือกสำหรับผู้ใช้ที่พบข้อจำกัดของ BufferQueue

การตรวจหาโปรแกรมแสดงผล WebView ที่หยุดทำงาน

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

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

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

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

Android 10 เปิดตัว Settings Panels ซึ่งเป็น 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 มีการปรับปรุงการแชร์หลายอย่าง ดังนี้

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

คำอธิบายประกอบการยอมรับค่า Null สำหรับ API ของ libcore

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

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

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงคำอธิบายประกอบได้ที่ ตอนนี้ Android Pie SDK รองรับ 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 และเช่น มีการเรียกใช้เมธอด finalize ในรุ่นก่อนหน้า แพลตฟอร์มจะประมาณขนาด ของออบเจ็กต์ 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()