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
ไม่ตอบสนองหรือไม่ วิธี
ใช้คลาสนี้
- กำหนดคลาสย่อยของคุณเองและใช้เมธอด
onRenderProcessResponsive()
และonRenderProcessUnresponsive()
- แนบอินสแตนซ์ของ
WebViewRenderProcessClient
กับออบเจ็กต์WebView
อย่างน้อย 1 รายการ - หาก
WebView
ไม่ตอบสนอง ระบบจะเรียกใช้เมธอดonRenderProcessUnresponsive()
ของไคลเอ็นต์ โดยส่งWebView
และWebViewRenderProcess
(หากWebView
เป็นแบบกระบวนการเดียว พารามิเตอร์WebViewRenderProcess
จะเป็น Null) แอปของคุณสามารถดำเนินการที่เหมาะสมได้ เช่น แสดง กล่องโต้ตอบต่อผู้ใช้เพื่อถามว่าต้องการหยุดกระบวนการแสดงผลหรือไม่
หาก WebView
ยังคงไม่ตอบสนอง ระบบจะเรียกใช้ onRenderProcessUnresponsive()
เป็นระยะๆ (ไม่เกิน 1 ครั้งทุกๆ 5 วินาที) แต่จะไม่ดำเนินการอื่นใด
หาก WebView
ตอบสนอง
อีกครั้ง ระบบจะเรียก onRenderProcessResponsive()
เพียงครั้งเดียว
แผงการตั้งค่า
Android 10 เปิดตัว Settings Panels ซึ่งเป็น API ที่ช่วยให้แอปแสดง การตั้งค่าต่อผู้ใช้ในบริบทของแอปได้ ซึ่งจะช่วยให้ผู้ใช้ไม่ต้องไปที่การตั้งค่าเพื่อเปลี่ยนสิ่งต่างๆ เช่น NFC หรืออินเทอร์เน็ตมือถือ เพื่อใช้แอป


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