ฟีเจอร์และ 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 เข้ากับขั้นตอนการตั้งค่าและการจัดสรรได้โดยใช้ Intent ACTION_PROCESS_WIFI_EASY_CONNECT_URI

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

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

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

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

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

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

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

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

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

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

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

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

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

Native MIDI API

Android Native MIDI API (AMidi) ช่วยให้นักพัฒนาแอปพลิเคชันสามารถส่งและรับข้อมูล MIDI ด้วยโค้ด C/C++ ซึ่งผสานรวมกับตรรกะการควบคุม/เสียง C/C++ ได้อย่างใกล้ชิดยิ่งขึ้น และลดความจำเป็นในการใช้ JNI

ดูข้อมูลเพิ่มเติมได้ที่ Android Native MIDI API

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

Android 10 เพิ่มเมธอดลงใน MediaCodecInfo ซึ่งจะแสดงข้อมูลเพิ่มเติมเกี่ยวกับตัวแปลงรหัส

ดูข้อมูลเพิ่มเติมได้ที่ตัวแปลงรหัสสื่อ

Thermal API

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

ใน Android 10 แอปและเกมสามารถใช้ Thermal API เพื่อตรวจสอบการเปลี่ยนแปลงในอุปกรณ์และดำเนินการเพื่อรักษาการใช้พลังงานที่ต่ำลงเพื่อคืนค่าอุณหภูมิปกติ แอปจะลงทะเบียน Listener ใน PowerManager ซึ่งระบบจะรายงานสถานะความร้อนที่เกิดขึ้นอย่างต่อเนื่องตั้งแต่ระดับเบาและปานกลางไปจนถึงระดับรุนแรง วิกฤต ฉุกเฉิน และปิดเครื่อง

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

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

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

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

การรองรับกล้องขาวดำ

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

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

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

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

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

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

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

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

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

การปรับปรุงการแยกประเภทฟิลด์

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

ตัวสร้าง UserData.Builder

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

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

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

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

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

การรองรับการแยกประเภทฟิลด์เฉพาะแอป

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

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

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

รองรับความสามารถ PopFrame ของ JVMTI

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

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

หาก 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 มีการปรับปรุงการแชร์หลายอย่าง ดังนี้

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 ของ Sharesheet ได้

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

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

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

ธีมมืด

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

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

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

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

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

Kotlin

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

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

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

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

นอกจากนี้ คำอธิบายประกอบ @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 ได้ เราได้เพิ่มการรองรับ Linker แบบไดนามิกและแบบคงที่เพื่อรองรับวิธีการจัดการตัวแปร Thread-Local นี้

สำหรับแอปที่สร้างขึ้นสำหรับ 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()