Android 10 มาพร้อมฟีเจอร์และความสามารถที่ยอดเยี่ยมสำหรับผู้ใช้และนักพัฒนาแอป เอกสารนี้จะไฮไลต์สิ่งที่พร้อมใช้งานสำหรับนักพัฒนาแอป
หากต้องการดูข้อมูลเกี่ยวกับ API โปรดอ่านรายงานความแตกต่างของ API หรือไปที่ข้อมูลอ้างอิง Android API แล้วมองหา API ที่ "เพิ่มใน API ระดับ 29" นอกจากนี้ โปรดดูการเปลี่ยนแปลงด้านความเป็นส่วนตัวและการเปลี่ยนแปลงลักษณะการทํางานของ Android 10 (สําหรับแอปที่กําหนดเป้าหมายเป็น API ระดับ 29 และแอปทั้งหมด) เพื่อดูข้อมูลเกี่ยวกับด้านต่างๆ ที่การเปลี่ยนแปลงแพลตฟอร์มอาจส่งผลต่อแอปของคุณ
การปรับปรุงการรักษาความปลอดภัย
Android 10 ขอแนะนำฟีเจอร์ความปลอดภัยต่างๆ ซึ่งเนื้อหาด้านล่างนี้ได้สรุปไว้
กล่องโต้ตอบการตรวจสอบสิทธิ์ด้วยข้อมูลไบโอเมตริกที่ปรับปรุงใหม่
Android 10 มีการปรับปรุงต่อไปนี้เพื่อรองรับการตรวจสอบสิทธิ์ด้วยข้อมูลไบโอเมตริก
- การตรวจสอบความสามารถในการตรวจสอบสิทธิ์ด้วยข้อมูลไบโอเมตริก
- กลไกสำรองที่ให้ผู้ใช้ตรวจสอบสิทธิ์โดยใช้ PIN, รูปแบบ หรือรหัสผ่านของอุปกรณ์ได้หากตรวจสอบสิทธิ์โดยใช้ข้อมูลไบโอเมตริกไม่ได้
- คำแนะนำที่บอกให้ระบบไม่ต้องมีการยืนยันจากผู้ใช้หลังจากที่ผู้ใช้ตรวจสอบสิทธิ์โดยใช้รูปแบบข้อมูลไบโอเมตริกโดยนัยแล้ว เช่น คุณสามารถบอกระบบว่าไม่จำเป็นต้องมีการยืนยันเพิ่มเติมหลังจากที่ผู้ใช้ตรวจสอบสิทธิ์โดยใช้การตรวจสอบใบหน้าแล้ว
เรียกใช้โค้ด DEX ที่ฝังอยู่จาก APK โดยตรง
ตั้งแต่ Android 10 เป็นต้นไป คุณบอกให้แพลตฟอร์มเรียกใช้โค้ด DEX แบบฝังได้โดยตรงจากไฟล์ APK ของแอป ตัวเลือกนี้จะช่วยป้องกันการโจมตีได้หากผู้โจมตีสามารถแทรกแซงโค้ดที่คอมไพล์ในเครื่องบนอุปกรณ์
ดูข้อมูลเพิ่มเติมได้ที่หัวข้อเรียกใช้โค้ด DEX ที่ฝังอยู่จาก APK โดยตรง
การรองรับ TLS 1.3
Android 10 เพิ่มการรองรับ TLS 1.3 TLS 1.3 คือการแก้ไขมาตรฐาน TLS ครั้งใหญ่ ซึ่งรวมถึงประโยชน์ด้านประสิทธิภาพและการรักษาความปลอดภัยที่ได้รับการปรับปรุง การเปรียบเทียบของเราแสดงให้เห็นว่า TLS 1.3 สร้างการเชื่อมต่อที่ปลอดภัยได้เร็วขึ้นถึง 40% เมื่อเทียบกับ TLS 1.2
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการใช้งาน TLS 1.3 ของเรา โปรดดูส่วน TLS ภายในการเปลี่ยนแปลงลักษณะการทำงานของแอปทั้งหมด
Conscrypt API สาธารณะ
ตั้งแต่ Android 10 เป็นต้นไป ผู้ให้บริการรักษาความปลอดภัย Conscrypt จะมี API สาธารณะสําหรับฟังก์ชันการทํางานของ TLS
คอลเล็กชันคลาสภายใต้ android.net.ssl
มีวิธีแบบคงที่ในการเข้าถึงฟังก์ชันการทำงานที่ไม่มีอยู่ใน API ของ javax.net.ssl
ทั่วไป ชื่อของคลาสเหล่านี้จะอนุมานได้ว่าเป็นรูปแบบพหูพจน์ของคลาส javax.net.ssl
ที่เกี่ยวข้อง เช่น โค้ดที่ดำเนินการกับอินสแตนซ์ของ javax.net.ssl.SSLSocket
สามารถใช้เมธอดจาก SSLSockets
แทนได้
ฟีเจอร์การเชื่อมต่อ
Android 10 มีการปรับปรุงหลายอย่างที่เกี่ยวข้องกับเครือข่ายและการเชื่อมต่อ
API การเชื่อมต่อเครือข่าย Wi-Fi
Android 10 เพิ่มการรองรับการเชื่อมต่อระหว่างเครื่อง ฟีเจอร์นี้ช่วยให้แอปแจ้งให้ผู้ใช้เปลี่ยนจุดเข้าใช้งานที่อุปกรณ์เชื่อมต่ออยู่โดยใช้ WifiNetworkSpecifier
เพื่ออธิบายพร็อพเพอร์ตี้ของเครือข่ายที่ขอ การเชื่อมต่อแบบ peer-to-peer ใช้เพื่อวัตถุประสงค์ที่ไม่ใช่การจัดหาเครือข่าย เช่น การกําหนดค่าการเริ่มต้นระบบสําหรับอุปกรณ์รอง เช่น ฮาร์ดแวร์ Chromecast และ Google Home
ดูข้อมูลเพิ่มเติมได้ที่ Wi-Fi Network Request API สำหรับการเชื่อมต่อแบบ peer-to-peer
Wi-Fi Network Suggestion API
Android 10 เพิ่มการรองรับแอปของคุณเพื่อแจ้งให้ผู้ใช้เชื่อมต่อกับจุดเข้าใช้งาน Wi-Fi คุณสามารถแนะนำเครือข่ายที่จะเชื่อมต่อได้ แพลตฟอร์มจะเลือกจุดเข้าใช้งานที่จะยอมรับในท้ายที่สุดโดยอิงตามข้อมูลจากแอปของคุณและแอปอื่นๆ
ดูข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์นี้ได้ที่หัวข้อแนะนำ Wi-Fi
การปรับปรุงโหมดประสิทธิภาพสูงและเวลาในการตอบสนองต่ำของ Wi-Fi
Android 10 ให้คุณแนะนำโมเด็มพื้นฐานเพื่อลดเวลาในการตอบสนองให้เหลือน้อยที่สุด
Android 10 ขยาย Wi-Fi Lock API เพื่อรองรับโหมดประสิทธิภาพสูงและโหมดเวลาในการตอบสนองต่ำได้อย่างมีประสิทธิภาพ ระบบจะปิดใช้โหมดประหยัดพลังงานของ Wi-Fi สำหรับโหมดประสิทธิภาพสูงและโหมดเวลาในการตอบสนองต่ำ และอาจเปิดใช้การเพิ่มประสิทธิภาพเวลาในการตอบสนองเพิ่มเติมในโหมดเวลาในการตอบสนองต่ำ ทั้งนี้ขึ้นอยู่กับการรองรับของโมเด็ม
โหมดเวลาในการตอบสนองต่ำจะเปิดใช้เฉพาะเมื่อแอปพลิเคชันรับการล็อกทำงานอยู่ในเบื้องหน้าและหน้าจอเปิดอยู่ โหมดความหน่วงต่ำมีประโยชน์อย่างยิ่งสําหรับแอปพลิเคชันเกมบนอุปกรณ์เคลื่อนที่แบบเรียลไทม์
การค้นหาเฉพาะทางในรีโซลเวอร์ DNS
Android 10 เพิ่มการรองรับการค้นหา DNS แบบพิเศษโดยใช้ทั้งการค้นหาแบบข้อความที่อ่านได้และโหมด DNS-over-TLS ก่อนหน้านี้ เครื่องมือแก้ไข DNS ของแพลตฟอร์มรองรับเฉพาะระเบียน A และ AAAA ซึ่งอนุญาตให้ค้นหาเฉพาะที่อยู่ IP ที่เชื่อมโยงกับชื่อเท่านั้น แต่ไม่รองรับระเบียนประเภทอื่นๆ
DnsResolver
API ให้ความละเอียดแบบทั่วไปแบบไม่ประสานเวลา ซึ่งช่วยให้คุณค้นหา SRV
, NAPTR
และประเภทระเบียนอื่นๆ ได้ โปรดทราบว่าการแยกวิเคราะห์การตอบกลับเป็นการดำเนินการที่แอปจะต้องดำเนินการต่อ
สำหรับแอปที่ใช้ NDK โปรดดู
android_res_nsend
Wi-Fi Easy Connect
Android 10 ให้คุณใช้ Easy Connect เพื่อจัดสรรข้อมูลเข้าสู่ระบบ Wi-Fi ให้กับอุปกรณ์ที่เชื่อมต่อแทน WPS ซึ่งเลิกใช้งานแล้ว
แอปผสานรวม Easy Connect เข้ากับขั้นตอนการตั้งค่าและการจัดสรรได้โดยใช้ Intent ACTION_PROCESS_WIFI_EASY_CONNECT_URI
ดูข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์นี้ได้ที่Wi-Fi Easy Connect
Wi-Fi Direct Connection API
คลาส WifiP2pConfig
และ WifiP2pManager
API มีการอัปเดตใน Android 10 เพื่อรองรับความสามารถในการสร้างการเชื่อมต่อ Wi-Fi Direct อย่างรวดเร็วโดยใช้ข้อมูลที่กําหนดไว้ล่วงหน้า ระบบจะแชร์ข้อมูลนี้ผ่านช่องทางแยกต่างหาก เช่น บลูทูธหรือ NFC
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างกลุ่มโดยใช้ข้อมูลที่กําหนดไว้ล่วงหน้า
Kotlin
val manager = getSystemService(Context.WIFI_P2P_SERVICE) as WifiP2pManager val channel = manager.initialize(this, mainLooper, null) // prefer 5G band for this group val config = WifiP2pConfig.Builder() .setNetworkName("networkName") .setPassphrase("passphrase") .enablePersistentMode(false) .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ) .build() // create a non-persistent group on 5GHz manager.createGroup(channel, config, null)
Java
WifiP2pManager manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE); Channel channel = manager.initialize(this, getMainLooper(), null); // prefer 5G band for this group WifiP2pConfig config = new WifiP2pConfig.Builder() .setNetworkName("networkName") .setPassphrase("passphrase") .enablePersistentMode(false) .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ) .build(); // create a non-persistent group on 5GHz manager.createGroup(channel, config, null);
หากต้องการเข้าร่วมกลุ่มโดยใช้ข้อมูลเข้าสู่ระบบ ให้แทนที่ manager.createGroup()
ด้วยข้อมูลต่อไปนี้
Kotlin
manager.connect(channel, config, null)
Java
manager.connect(channel, config, null);
ช่องที่มุ่งเน้นการเชื่อมต่อ (CoC) ของบลูทูธ LE
Android 10 ช่วยให้แอปของคุณใช้การเชื่อมต่อ BLE CoC เพื่อโอนสตรีมข้อมูลขนาดใหญ่ระหว่างอุปกรณ์ BLE 2 เครื่องได้ อินเทอร์เฟซนี้จะแยกบลูทูธและกลไกการเชื่อมต่อออกเพื่อให้ใช้งานได้ง่ายขึ้น
ฟีเจอร์โทรศัพท์
Android 10 มีการปรับปรุงหลายอย่างที่เกี่ยวข้องกับการโทร
การปรับปรุงคุณภาพการโทร
Android 10 เพิ่มความสามารถในการรวบรวมข้อมูลเกี่ยวกับคุณภาพการเรียกระบบย่อยมัลติมีเดีย (IMS) ของ IP อย่างต่อเนื่อง ซึ่งรวมถึงคุณภาพในการรับและจากเครือข่ายในอุปกรณ์ที่รองรับฟีเจอร์นี้
การสกรีนสายเรียกเข้าและหมายเลขผู้โทร
Android 10 ช่วยให้แอปของคุณมีวิธีระบุการโทรที่ไม่ได้อยู่ในสมุดที่อยู่ของผู้ใช้ว่าเป็นสายที่อาจเป็นสแปม และปฏิเสธสายสแปมแทนผู้ใช้โดยที่ผู้ใช้ไม่รู้ตัว ระบบจะบันทึกข้อมูลเกี่ยวกับการโทรที่ถูกบล็อกเหล่านี้เป็นสายที่บล็อกในบันทึกการโทรเพื่อให้ผู้ใช้มีความโปร่งใสมากขึ้นเมื่อพลาดสายเรียกเข้า การใช้ API นี้ทำให้คุณไม่ต้องขอสิทธิ์ READ_CALL_LOG
จากผู้ใช้เพื่อให้บริการกรองสายเรียกเข้าและฟังก์ชันการระบุหมายเลขผู้โทร
API บริการเปลี่ยนเส้นทางการโทร
Android 10 เปลี่ยนวิธีจัดการความตั้งใจในการโทร เราเลิกใช้งานการออกอากาศ NEW_OUTGOING_CALL
แล้วและแทนที่ด้วย CallRedirectionService
API CallRedirectionService
API มีอินเทอร์เฟซให้คุณแก้ไขสายเรียกออกที่แพลตฟอร์ม Android ดำเนินการ ตัวอย่างเช่น แอปของบุคคลที่สามอาจยกเลิกการโทรและเปลี่ยนเส้นทางผ่าน VoIP
การปรับปรุงการสร้างไฟล์ในพื้นที่เก็บข้อมูลภายนอก
นอกจากการเปิดตัวพื้นที่เก็บข้อมูลที่กำหนดขอบเขตแล้ว Android 10 ยังเพิ่มความสามารถต่อไปนี้ที่เกี่ยวข้องกับพื้นที่เก็บข้อมูลภายนอก
- คุณสามารถใช้
IS_PENDING
Flag เพื่อให้สิทธิ์เข้าถึงไฟล์สื่อแบบพิเศษแก่แอปขณะที่เขียนลงในดิสก์ - หากทราบตำแหน่งที่ควรจัดเก็บไฟล์ คุณสามารถให้คำแนะนำแก่ระบบเกี่ยวกับตำแหน่งที่จะจัดเก็บไฟล์ที่เขียนใหม่
- อุปกรณ์จัดเก็บข้อมูลภายนอกแต่ละเครื่องจะมีชื่อระดับเสียงที่ไม่ซ้ำกัน
สื่อและกราฟิก
Android 10 เปิดตัวฟีเจอร์และ API ใหม่สำหรับสื่อและกราฟิกดังต่อไปนี้
การแชร์อินพุตเสียง
Android 10 เพิ่มความสามารถให้แอป 2 แอปแชร์อินพุตเสียงพร้อมกัน ดูข้อมูลทั้งหมดได้ที่การแชร์อินพุตเสียง
การบันทึกการเล่นเสียง
Android 10 ช่วยให้แอปสามารถบันทึกการเล่นเสียงจากแอปอื่นๆ ได้ ดูข้อมูลทั้งหมดได้ที่การบันทึกการเล่น
Seekbar ในการแจ้งเตือน MediaStyle
ตั้งแต่ Android 10 เป็นต้นไป การแจ้งเตือน MediaStyle
จะแสดงแถบเลื่อน แถบเลื่อนแสดงความคืบหน้าในการเล่นจาก PlaybackState.getPosition()
และในบางกรณี คุณสามารถใช้แถบเลื่อนเพื่อกรอไปยังตำแหน่งที่ต้องการในโปรแกรมที่กำลังเล่น โดยกฎต่อไปนี้จะควบคุมลักษณะและลักษณะการทำงานของแถบเลื่อน
- แถบเลื่อนจะปรากฏขึ้นหากมี
MediaSession
ที่ใช้งานอยู่และระยะเวลาของMediaSession
(ที่ระบุโดยMediaMetadata.METADATA_KEY_DURATION
) มากกว่า 0 ซึ่งหมายความว่าแถบนี้จะไม่ปรากฏขึ้นสำหรับสตรีมที่ไม่แน่นอน เช่น สตรีมแบบสดและการออกอากาศทางวิทยุ - หากเซสชันใช้
ACTION_SEEK_TO
ผู้ใช้จะลากแถบเลื่อนเพื่อควบคุมตำแหน่งการเล่นได้
MIDI API เดิม
Android Native MIDI API (AMidi) ช่วยให้นักพัฒนาแอปพลิเคชันส่งและรับข้อมูล MIDI ด้วยโค้ด C/C++ ได้อย่างใกล้ชิดยิ่งขึ้นกับตรรกะ/เสียง C/C++ ของ C/C++ และลดความจำเป็นในการใช้ JNI
ดูข้อมูลเพิ่มเติมได้ที่ Android Native MIDI API
การปรับปรุง MediaCodecInfo
Android 10 เพิ่มเมธอดใน MediaCodecInfo
ที่แสดงข้อมูลเพิ่มเติมเกี่ยวกับตัวแปลงรหัส
ดูข้อมูลเพิ่มเติมได้ที่ตัวแปลงรหัสสื่อ
Thermal API
เมื่ออุปกรณ์ร้อนเกินไป ระบบอาจจำกัดการทำงานของ CPU และ/หรือ GPU ซึ่งอาจส่งผลต่อแอปและเกมในลักษณะที่ไม่คาดคิด แอปที่ใช้กราฟิกที่ซับซ้อน การประมวลผลอย่างหนัก หรือกิจกรรมเครือข่ายเป็นเวลานานมีแนวโน้มที่จะพบปัญหามากกว่า และแอปดังกล่าวอาจแตกต่างกันไปตามอุปกรณ์ตามความถี่หลัก ระดับการผสานรวม และบรรจุภัณฑ์และรูปแบบของอุปกรณ์
ใน Android 10 แอปและเกมสามารถใช้ Thermal API เพื่อตรวจสอบการเปลี่ยนแปลงในอุปกรณ์และดำเนินการเพื่อรักษาระดับการใช้พลังงานให้ต่ำลงเพื่อคืนอุณหภูมิให้ปกติ แอปลงทะเบียนโปรแกรมรับฟังใน PowerManager ซึ่งระบบจะรายงานสถานะความร้อนอย่างต่อเนื่องตั้งแต่ระดับปานกลางไปจนถึงรุนแรง ร้ายแรง ฉุกเฉิน และการปิด
เมื่ออุปกรณ์รายงานความร้อน แอปและเกมจะช่วยได้โดยลดกิจกรรมที่กำลังดำเนินอยู่เพื่อลดการใช้พลังงานด้วยวิธีต่างๆ เช่น แอปสตรีมมิงอาจลดความละเอียด/อัตราบิตหรือการจราจรของข้อมูลในเครือข่าย แอปกล้องอาจปิดใช้แฟลชหรือการเพิ่มประสิทธิภาพรูปภาพมากเกินไป เกมอาจลดอัตราเฟรมหรือรูปหลายเหลี่ยม แอปสื่ออาจลดระดับเสียงของลำโพง และแอปแผนที่อาจปิด GPS
Thermal API ต้องใช้เลเยอร์ HAL ของอุปกรณ์ใหม่ ซึ่งปัจจุบันรองรับในอุปกรณ์ Pixel ที่ใช้ Android 10 และเรากำลังทำงานร่วมกับพาร์ทเนอร์ผู้ผลิตอุปกรณ์เพื่อขยายการรองรับไปยังระบบนิเวศโดยรวมโดยเร็วที่สุด
กล้องและรูปภาพ
Android 10 เปิดตัวฟีเจอร์ใหม่ที่เกี่ยวข้องกับกล้องและรูปภาพดังต่อไปนี้
รองรับกล้องโมโนโครม
Android 9 (API ระดับ 28) เปิดตัวความสามารถของกล้องโมโนโครมเป็นครั้งแรก Android 10 เพิ่มการปรับปรุงหลายอย่างในการรองรับกล้องโมโนโครม ดังนี้
- รองรับรูปแบบสตรีม Y8 เพื่อปรับปรุงประสิทธิภาพหน่วยความจำ
- รองรับการจับภาพโมโนโครมแบบ RAW ในรูปแบบ DNG
- บทนำของการแจงนับ MONO และ NIR CFA เพื่อแยกความแตกต่างระหว่างกล้องโมโนโครมปกติกับกล้องอินฟราเรดแบบระยะใกล้
คุณสามารถใช้ฟีเจอร์นี้เพื่อจับภาพโมโนโครมแบบเนทีฟได้ อุปกรณ์กล้องหลายตัวเชิงตรรกะอาจใช้กล้องโมโนโครมเป็นกล้องย่อยจริงเพื่อให้คุณภาพของรูปในสภาวะแสงน้อยดีขึ้น
รูปแบบการปรับระยะความคมชัด
ตั้งแต่ Android 10 เป็นต้นไป กล้องจะสามารถเก็บข้อมูลความลึกของรูปภาพไว้ในไฟล์แยกต่างหาก โดยใช้สคีมาใหม่ชื่อ Dynamic Depth Format (DDF) แอปสามารถขอทั้งรูปภาพ JPG และข้อมูลเมตาเกี่ยวกับความลึกของรูปภาพได้ โดยใช้ข้อมูลดังกล่าวเพื่อเบลอรูปภาพตามต้องการในขั้นตอนหลังการประมวลผลโดยไม่ต้องแก้ไขข้อมูลรูปภาพต้นฉบับ
หากต้องการอ่านข้อกำหนดสำหรับรูปแบบนี้ โปรดดูหัวข้อรูปแบบความลึกแบบไดนามิก
รูปแบบไฟล์รูปภาพประสิทธิภาพสูง
รูปแบบ High Efficiency Image File (HEIF) เป็นรูปแบบรูปภาพและวิดีโอมาตรฐานที่ใช้การเข้ารหัสคุณภาพสูงขึ้นและมีขนาดเล็กกว่าเมื่อเทียบกับรูปแบบไฟล์อื่นๆ
ดูข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบไฟล์ได้ที่ HEIC
การปรับปรุงกล้องหลายตัว
Android 10 ปรับปรุงการรวมกล้องหลายตัวให้เป็นกล้องเสมือนจริงกล้องเดียว ซึ่งเป็นฟีเจอร์ที่เปิดตัวใน Android 9 (API ระดับ 28) เราได้เพิ่มรายการต่อไปนี้ลงใน Camera2 API
isSessionConfigurationSupported(SessionConfiguration sessionConfig)
- ช่วยให้คุณค้นหาได้ว่าจะใช้การกําหนดค่าเซสชันที่ส่งเพื่อสร้างเซสชันการจับภาพด้วยกล้องได้หรือไม่LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID
- ช่วยให้คุณระบุรหัสของกล้องจริงที่ใช้งานอยู่ซึ่งสำรองข้อมูลอุปกรณ์กล้องเชิงตรรกะ คุณสามารถใช้รหัสที่แสดงผลเพื่อขอสตรีมเชิงตรรกะและสตรีมกล้องย่อยจริงเพื่อให้ประหยัดพลังงานได้ดีขึ้น
API บริการการช่วยเหลือพิเศษ
Android 10 เปิดตัวฟีเจอร์และ API ใหม่ต่อไปนี้ของบริการการช่วยเหลือพิเศษ
Flag ของคีย์เข้าถึง AccessibilityNodeInfo
ตั้งแต่ Android 10 เป็นต้นไป คุณสามารถเรียกใช้ isTextEntryKey()
เพื่อระบุว่า AccessibilityNodeInfo
หนึ่งๆ แสดงถึงแป้นป้อนข้อความซึ่งเป็นส่วนหนึ่งของแป้นพิมพ์หรือปุ่มกดหรือไม่
ความคิดเห็นที่อ่านออกเสียงในกล่องโต้ตอบการช่วยเหลือพิเศษ
ในกรณีที่ผู้ใช้ต้องดำเนินการกับทางลัดการช่วยเหลือพิเศษเพื่อเริ่มบริการการช่วยเหลือพิเศษ Android 10 จะอนุญาตให้กล่องโต้ตอบแสดงพร้อมกับข้อความแจ้งการอ่านออกเสียงหากบริการขอ
ทางลัดสำหรับการช่วยเหลือพิเศษเมื่อเปิดใช้การไปยังส่วนต่างๆ ด้วยท่าทางสัมผัส
เมื่อเปิดใช้ฟีเจอร์การนำทางด้วยท่าทางสัมผัสใน Android 10 ปุ่มการช่วยเหลือพิเศษจะไม่ปรากฏหรือเลือกไม่ได้ หากต้องการเข้าถึงเมนูบริการการช่วยเหลือพิเศษ ผู้ใช้ต้องทําท่าทางสัมผัสอย่างใดอย่างหนึ่งต่อไปนี้
- ใช้ 2 นิ้วปัดขึ้น
- ใช้ 2 นิ้วปัดขึ้นแล้วค้างไว้
แป้นพิมพ์ลัดสำหรับการช่วยเหลือพิเศษของแป้นพิมพ์จริง
ใน Android 10 ผู้ใช้จะเรียกใช้ทางลัดการช่วยเหลือพิเศษบนแป้นพิมพ์จริงได้โดยกด Control+Alt+Z
การปรับปรุงตัวควบคุมแป้นพิมพ์เสมือน
ใน Android 10 บริการการช่วยเหลือพิเศษจะขอให้แสดงแป้นพิมพ์บนหน้าจอได้แม้ว่าอุปกรณ์จะตรวจพบแป้นพิมพ์จริงที่ต่ออยู่ก็ตาม ผู้ใช้จะลบล้างลักษณะการทำงานนี้ได้
ระยะหมดเวลาการช่วยเหลือพิเศษที่ผู้ใช้กำหนด
Android 10 เปิดตัว API getRecommendedTimeoutMillis()
วิธีการนี้รองรับการหมดเวลาที่กำหนดโดยผู้ใช้สำหรับองค์ประกอบ UI แบบโต้ตอบและไม่โต้ตอบ ค่าที่แสดงผลจะขึ้นอยู่กับทั้งค่ากําหนดของผู้ใช้และ API บริการการช่วยเหลือพิเศษ
การปรับปรุงฟีเจอร์ป้อนข้อความอัตโนมัติ
Android 10 มีการปรับปรุงบริการป้อนข้อความอัตโนมัติดังต่อไปนี้
คำขอป้อนข้อความอัตโนมัติที่เกี่ยวข้องกับความเข้ากันได้
คุณสามารถใช้แฟล็ก FillRequest.FLAG_COMPATIBILITY_MODE_REQUEST
เพื่อระบุว่ามีการสร้างคำขอป้อนข้อความอัตโนมัติผ่านโหมดความเข้ากันได้หรือไม่
บันทึกชื่อผู้ใช้และรหัสผ่านพร้อมกัน
คุณสามารถรองรับกรณีที่แอปพลิเคชันใช้กิจกรรมหลายรายการเพื่อแสดงชื่อผู้ใช้ รหัสผ่าน และช่องอื่นๆ ได้โดยใช้ Flag SaveInfo.FLAG_DELAY_SAVE
การโต้ตอบของผู้ใช้กับบันทึก UI
คุณสามารถแสดงและซ่อนช่องรหัสผ่านในกล่องโต้ตอบการบันทึกได้โดยการตั้งค่าตัวรับฟังการดำเนินการในกล่องโต้ตอบและเปลี่ยนระดับการมองเห็นของมุมมองระยะไกลของรหัสผ่านที่เกี่ยวข้อง
รองรับการอัปเดตชุดข้อมูล
ฟีเจอร์ป้อนข้อความอัตโนมัติจะอัปเดตรหัสผ่านที่มีอยู่ได้ เช่น หากผู้ใช้มีรหัสผ่านที่บันทึกไว้อยู่แล้วและบันทึกรหัสผ่านใหม่ ระบบจะแจ้งให้ผู้ใช้อัปเดตรหัสผ่านที่มีอยู่แทนที่จะบันทึกรหัสผ่านใหม่
การปรับปรุงการจัดประเภทฟิลด์
Android 10 มีการปรับปรุง Field Classification API ดังต่อไปนี้
ตัวสร้าง UserData.Builder
คอนสตรคเตอร์ของ UserData.Builder
ได้เปลี่ยนไปเพื่อให้สอดคล้องกับรูปแบบ Builder
มากขึ้น
อนุญาตให้แมปค่ากับรหัสหมวดหมู่หลายประเภท
เมื่อใช้ UserData.Builder
ใน Android 10 ตอนนี้คุณสามารถแมปค่ากับรหัสหมวดหมู่หลายประเภทได้แล้ว ในรุ่นก่อนหน้า มีข้อยกเว้นหากมีการเพิ่มค่ามากกว่า 1 ครั้ง
ปรับปรุงการรองรับหมายเลขบัตรเครดิต
ตอนนี้การจัดประเภทช่องสามารถตรวจหาตัวเลข 4 หลักเป็นตัวเลข 4 หลักสุดท้ายของหมายเลขบัตรเครดิตได้แล้ว
การรองรับการจัดประเภทช่องสำหรับแอปโดยเฉพาะ
Android 10 เพิ่ม FillResponse.setUserData()
ซึ่งช่วยให้คุณตั้งค่าข้อมูลผู้ใช้เฉพาะแอปได้ตามระยะเวลาของเซสชัน
วิธีนี้ช่วยให้บริการป้อนข้อความอัตโนมัติตรวจหาประเภทของช่องที่มีเนื้อหาเฉพาะแอปได้
การควบคุม UI และระบบ
Android 10 มีการปรับปรุงอินเทอร์เฟซผู้ใช้ดังต่อไปนี้
รองรับขีดจํากัดของ JVMTI PopFrame
Android 10 เพิ่มการรองรับความสามารถของ can_pop_frames
ในการใช้งาน JVMTI ของ Android เมื่อแก้ไขข้อบกพร่อง ฟีเจอร์นี้ช่วยให้คุณเรียกใช้ฟังก์ชันอีกครั้งหลังจากหยุดชั่วคราวที่เบรกพอยท์และปรับเปลี่ยนในเครื่อง ส่วนกลาง หรือการใช้งานฟังก์ชันได้ ดูข้อมูลเพิ่มเติมได้ที่หน้าอ้างอิง Pop Frame ของ Oracle
API การควบคุมพื้นผิว
Android 10 มี SurfaceControl
API สำหรับระดับการเข้าถึงต่ำในคอมโพสิเตอร์ของระบบ (SurfaceFlinger
) สำหรับผู้ใช้ส่วนใหญ่แล้ว SurfaceView เป็นวิธีที่ถูกต้องในการใช้ประโยชน์จากคอมโพสิเตอร์ SurfaceControl
API อาจมีประโยชน์ในบางกรณี เช่น
- การซิงค์หลายพื้นผิว
- การฝังแพลตฟอร์มข้ามกระบวนการ
- การจัดการตลอดอายุระดับล่าง
SurfaceControl
API พร้อมใช้งานทั้งในSDK และ NDK
การใช้งาน NDK มี API สำหรับการแลกเปลี่ยนบัฟเฟอร์ด้วยตนเองกับคอมโพสิต ซึ่งจะเป็นทางเลือกสำหรับผู้ใช้ที่พบข้อจำกัดของ BufferQueue
การตรวจหาโปรแกรมแสดงผลของ WebView ค้าง
Android 10 เปิดตัวคลาสแบบ抽象 WebViewRenderProcessClient
ซึ่งแอปสามารถใช้เพื่อตรวจจับว่า WebView
ไม่ตอบสนองหรือไม่ วิธีใช้คลาสนี้
- กำหนดคลาสย่อยของคุณเองและใช้เมธอด
onRenderProcessResponsive()
และonRenderProcessUnresponsive()
- แนบอินสแตนซ์ของ
WebViewRenderProcessClient
กับออบเจ็กต์WebView
อย่างน้อย 1 รายการ - หาก
WebView
ไม่ตอบสนอง ระบบจะเรียกใช้เมธอดonRenderProcessUnresponsive()
ของไคลเอ็นต์ โดยส่งWebView
และWebViewRenderProcess
(หากWebView
เป็นโปรเซสเดียว พารามิเตอร์WebViewRenderProcess
จะว่างเปล่า) แอปสามารถดําเนินการที่เหมาะสม เช่น แสดงกล่องโต้ตอบต่อผู้ใช้เพื่อถามว่าต้องการหยุดกระบวนการแสดงผลหรือไม่
หาก WebView
ยังคงไม่ตอบสนอง ระบบจะเรียกใช้ onRenderProcessUnresponsive()
เป็นระยะๆ (ไม่เกิน 1 ครั้งต่อ 5 วินาที) แต่ไม่ดำเนินการอื่นใด
หาก WebView
ปรับเปลี่ยนตามอุปกรณ์อีกครั้ง ระบบจะเรียกใช้ onRenderProcessResponsive()
เพียงครั้งเดียว
แผงการตั้งค่า
Android 10 เปิดตัวแผงการตั้งค่า ซึ่งเป็น 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
- แสดงการตั้งค่าทั้งหมดที่เกี่ยวข้องกับการสื่อสารระยะใกล้ (NFC)
ACTION_VOLUME
- แสดงการตั้งค่าระดับเสียงสำหรับสตรีมเสียงทั้งหมด
การปรับปรุงการแชร์
Android 10 มีการปรับปรุงการแชร์หลายอย่าง ดังนี้
Sharing Shortcuts API
และ Sharing ทางลัด API ได้มาแทนที่ Direct Share API
Sharing Shortcuts API ช่วยให้แอปเผยแพร่เป้าหมายการแชร์โดยตรงล่วงหน้าแทนที่จะดึงข้อมูลตามคำขอ ShortcutManager
ทํางานดังนี้
เนื่องจาก API ทั้ง 2 อย่างมีความคล้ายคลึงกัน เราจึงขยาย ShortcutInfo
API เพื่อให้ใช้ฟีเจอร์ทั้งสองได้ง่ายขึ้น เมื่อใช้ Sharing Shortcuts API คุณจะกำหนดหมวดหมู่หรือบุคคลให้กับเป้าหมายการแชร์ได้โดยตรง เป้าหมายการแชร์จะยังคงอยู่ในระบบจนกว่าแอปเดียวกันจะอัปเดตเป้าหมายหรือมีการถอนการติดตั้งแอป
กลไกการแชร์โดยตรงแบบเก่าจะยังคงใช้งานได้ แต่แอปที่ใช้กลไกดังกล่าวจะมีลำดับความสำคัญต่ำกว่าแอปที่ใช้ Sharing Shortcuts API
ShortcutInfo.Builder
เพิ่มและปรับปรุงวิธีการในการให้ข้อมูลเพิ่มเติมเกี่ยวกับเป้าหมายการแชร์
เป้าหมายส่วนแบ่งโดยตรง
คุณสามารถเผยแพร่ทางลัดแบบไดนามิกเป็นเป้าหมายการแชร์โดยตรงได้ โปรดดูเผยแพร่เป้าหมายการแชร์โดยตรง
ShortcutManagerCompat
คือ AndroidX API ใหม่ที่เข้ากันได้แบบย้อนหลังกับ DirectShare API เดิม วิธีนี้เป็นวิธีที่แนะนำในการเผยแพร่เป้าหมายการแชร์
การแสดงตัวอย่างข้อความ
เมื่อแอปแชร์เนื้อหาข้อความ แอปจะแสดงตัวอย่างเนื้อหา (ไม่บังคับ) ใน UI ของชีตการแชร์ได้
ดูการเพิ่มตัวอย่างข้อความแบบ Rich Text
ดูข้อมูลเพิ่มเติม
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีแชร์ข้อมูลของแอปได้ที่การส่งข้อมูลอย่างง่ายไปยังแอปอื่นๆ และการรับข้อมูลอย่างง่ายจากแอปอื่นๆ
ธีมมืด
Android 10 มีธีมมืดที่ใช้กับทั้ง UI ของระบบ Android และแอปที่ทำงานในอุปกรณ์ ดูข้อมูลทั้งหมดได้ที่ธีมมืด
ประเภทบริการที่ทำงานอยู่เบื้องหน้า
Android 10 เปิดตัวแอตทริบิวต์ไฟล์ Manifest foregroundServiceType
ของ XML ซึ่งคุณรวมไว้ในคําจํากัดความของบริการที่เฉพาะเจาะจงหลายรายการ มีความเป็นไปได้ที่จะกำหนดประเภทบริการที่ทำงานอยู่เบื้องหน้าหลายประเภทให้กับบริการใดบริการหนึ่ง แม้จะค่อนข้างไม่เหมาะสมได้
ตารางต่อไปนี้แสดงประเภทบริการที่ทำงานอยู่เบื้องหน้าและบริการต่างๆ ที่ควรประกาศประเภทที่เฉพาะเจาะจง
ประเภทบริการที่ทำงานอยู่เบื้องหน้า | ตัวอย่างกรณีการใช้งานสําหรับบริการที่ควรประกาศประเภทนี้ |
---|---|
connectedDevice
| ตรวจสอบเครื่องติดตามการเคลื่อนไหวแบบสวมใส่ได้ |
dataSync
| ดาวน์โหลดไฟล์จากเครือข่าย |
location
| ดำเนินการที่เริ่มต้นโดยผู้ใช้ต่อไป |
mediaPlayback
| เล่นหนังสือเสียง พอดแคสต์ หรือเพลง |
mediaProjection
| บันทึกวิดีโอของจอแสดงผลของอุปกรณ์เป็นระยะเวลาสั้นๆ |
phoneCall
| จัดการสายที่โทรอยู่ |
Kotlin
Android 10 มีการอัปเดตต่อไปนี้สําหรับการพัฒนา Kotlin
คำอธิบายประกอบความสามารถในการเว้นว่างสำหรับ libcore API
Android 10 ปรับปรุงความครอบคลุมของคำอธิบายประกอบเกี่ยวกับ Nullability ใน SDK สำหรับ libcore API คําอธิบายประกอบเหล่านี้ช่วยให้นักพัฒนาแอปที่ใช้การวิเคราะห์ Nullability ของ Kotlin หรือ Java ใน Android Studio รับข้อมูลเกี่ยวกับ Nullability ได้เมื่อโต้ตอบกับ API เหล่านี้
โดยปกติแล้ว การละเมิดสัญญาเกี่ยวกับ Nullability ใน Kotlin จะทำให้เกิดข้อผิดพลาดในการคอมไพล์ ระบบจะเพิ่มเฉพาะคำอธิบายประกอบ @RecentlyNullable
และ @RecentlyNonNull
เพื่อให้เข้ากันได้กับโค้ดที่มีอยู่ ซึ่งหมายความว่าการละเมิด Nullability จะส่งผลให้เกิดคำเตือนแทนข้อผิดพลาด
นอกจากนี้ คำอธิบายประกอบ @RecentlyNullable
หรือ @RecentlyNonNull
ที่เพิ่มใน Android 9 จะเปลี่ยนเป็น @Nullable
และ @NonNull
ตามลำดับ
ซึ่งหมายความว่าใน Android 10 ขึ้นไป การละเมิด Nullability จะทำให้เกิดข้อผิดพลาดแทนคำเตือน
ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงคำอธิบายประกอบได้ในAndroid Pie SDK ใช้งานร่วมกับ Kotlin ได้ง่ายขึ้นในบล็อกของนักพัฒนาแอป Android
NDK
Android 10 มีการเปลี่ยนแปลง NDK ดังต่อไปนี้
การแก้ไขข้อบกพร่องการเป็นเจ้าของตัวระบุไฟล์ที่ดียิ่งขึ้น
Android 10 เพิ่ม fdsan ซึ่งจะช่วยให้คุณค้นหาและแก้ไขปัญหาการเป็นเจ้าของตัวระบุไฟล์ได้ง่ายขึ้น
ข้อบกพร่องที่เกี่ยวข้องกับการจัดการการเป็นเจ้าของตัวระบุไฟล์อย่างไม่ถูกต้อง ซึ่งมักจะแสดงเป็นข้อบกพร่องใช้หลังจากปิดและปิด 2 ครั้งนั้นคล้ายกับข้อบกพร่องใช้หลังจากเพิ่มหน่วยความจำและเพิ่มหน่วยความจำ 2 ครั้งในการจองหน่วยความจำ แต่มักจะวินิจฉัยและแก้ไขได้ยากกว่ามาก fdsan จะพยายามตรวจหาและ/หรือป้องกันการจัดการตัวระบุไฟล์อย่างไม่ถูกต้องโดยบังคับใช้การเป็นเจ้าของตัวระบุไฟล์
ดูข้อมูลเพิ่มเติมเกี่ยวกับการขัดข้องที่เกี่ยวข้องกับปัญหาเหล่านี้ได้ที่ข้อผิดพลาดที่ fdsan ตรวจพบ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Fdsan โปรดดูที่หน้า Googlesource ใน fdsan
TLS ของ ELF
แอปพลิเคชันที่สร้างขึ้นโดยใช้ NDK ที่มี API ระดับ 29 เป็นอย่างน้อยจะใช้ ELF TLS ได้แทน emutls
เราได้เพิ่มการรองรับ linker แบบไดนามิกและแบบคงที่เพื่อรองรับวิธีจัดการตัวแปรระดับเธรดนี้
สำหรับแอปที่สร้างสำหรับ API ระดับ 28 หรือต่ำกว่า เราได้ดำเนินการปรับปรุงสำหรับ libgcc/compiler-rt
เพื่อแก้ปัญหา emutls
บางประการ
ดูข้อมูลเพิ่มเติมได้ที่การเปลี่ยนแปลง Android สำหรับนักพัฒนาแอป NDK
รันไทม์
Android 10 จะมีการเปลี่ยนแปลงรันไทม์ต่อไปนี้
การเรียกใช้การเก็บขยะตาม Mallinfo
เมื่อออบเจ็กต์ Java ขนาดเล็กของแพลตฟอร์มอ้างอิงออบเจ็กต์ขนาดใหญ่ในกอง C++ บ่อยครั้งระบบจะเรียกคืนออบเจ็กต์ C++ ได้ก็ต่อเมื่อมีการรวบรวมออบเจ็กต์ Java และดำเนินการต่างๆ เช่น ดำเนินการให้เสร็จสมบูรณ์ ในรุ่นก่อนหน้า แพลตฟอร์มจะประมาณขนาดของออบเจ็กต์ C++ จำนวนมากที่เชื่อมโยงกับออบเจ็กต์ Java การประมาณนี้ไม่ถูกต้องเสมอไปและบางครั้งส่งผลให้มีการใช้หน่วยความจําเพิ่มขึ้นอย่างมาก เนื่องจากแพลตฟอร์มรวบรวมขยะไม่สําเร็จตามที่ควรจะเป็น
ใน Android 10 ตัวเก็บขยะ (GC) จะติดตามขนาดทั้งหมดของกองที่ระบบจัดสรรmalloc()
เพื่อให้แน่ใจว่าการจัดสรร malloc()
ขนาดใหญ่จะรวมอยู่ในการคํานวณที่ทริกเกอร์ GC เสมอ แอปที่สอดแทรกการจัดสรร C++ จำนวนมากด้วยการดำเนินการของ Java อาจพบว่าความถี่ในการรวบรวมขยะเพิ่มขึ้น แอปอื่นๆ อาจเห็นตัวเลขลดลงเล็กน้อย
การทดสอบและการแก้ไขข้อบกพร่อง
Android 10 มีการปรับปรุงต่อไปนี้สำหรับการทดสอบและการแก้ไขข้อบกพร่อง
การปรับปรุงการติดตามระบบในอุปกรณ์
ตั้งแต่ Android 10 เป็นต้นไป คุณจะระบุขีดจำกัดสำหรับขนาดและระยะเวลาของการติดตามได้เมื่อติดตามระบบในอุปกรณ์ เมื่อคุณระบุค่าใดค่าหนึ่ง ระบบจะทำการติดตามแบบยาว โดยคัดลอกบัฟเฟอร์การติดตามไปยังไฟล์ปลายทางเป็นระยะๆ ขณะบันทึกการติดตาม การติดตามจะเสร็จสมบูรณ์เมื่อถึงขีดจํากัดขนาดหรือระยะเวลาที่คุณระบุ
ใช้พารามิเตอร์เพิ่มเติมเหล่านี้เพื่อทดสอบกรณีการใช้งานที่แตกต่างจากที่คุณทดสอบด้วยการติดตามมาตรฐาน เช่น คุณอาจกำลังวินิจฉัยข้อบกพร่องด้านประสิทธิภาพที่เกิดขึ้นหลังจากที่แอปทำงานเป็นเวลานาน ในกรณีนี้ คุณสามารถบันทึกการติดตามแบบยาวตลอดทั้งวัน จากนั้นวิเคราะห์เครื่องมือจัดตารางเวลาของ CPU, กิจกรรมของดิสก์, เทรดของแอป และข้อมูลอื่นๆ ในรายงานเพื่อช่วยระบุสาเหตุของข้อบกพร่อง
ใน Android 10 ขึ้นไป ไฟล์การติดตามจะบันทึกไว้ในรูปแบบที่สามารถเปิดด้วย Perfetto ซึ่งเป็นโปรเจ็กต์โอเพนซอร์สสำหรับการวัดคุมประสิทธิภาพและการติดตาม คุณแปลงไฟล์การติดตาม Perfetto เป็นรูปแบบ Systrace ได้
การปรับปรุง TextClassifier
Android 10 มีฟังก์ชันการแยกประเภทข้อความเพิ่มเติมในอินเทอร์เฟซ TextClassifier
การตรวจหาภาษา
เมธอด detectLanguage()
ทำงานคล้ายกับวิธีการแยกประเภทที่มีอยู่ก่อนหน้านี้ โดยรับออบเจ็กต์ TextLanguage.Request
และแสดงผลออบเจ็กต์ TextLanguage
ออบเจ็กต์ TextLanguage
ประกอบด้วยรายการคู่ที่เรียงลําดับ แต่ละคู่จะมีภาษาและคะแนนความเชื่อมั่นที่เกี่ยวข้องสำหรับการจัดประเภท
การดำเนินการในการสนทนาที่แนะนำ
วิธีการนี้ทำงานคล้ายกับวิธีการจัดประเภทที่มีอยู่suggestConversationActions()
ซึ่งจะได้รับออบเจ็กต์ ConversationActions.Request
และแสดงผลออบเจ็กต์ ConversationActions
ออบเจ็กต์ ConversationActions
ประกอบด้วยรายการออบเจ็กต์ ConversationAction
ออบเจ็กต์ ConversationAction
แต่ละรายการมีการดำเนินการที่แนะนำและคะแนนความเชื่อมั่นที่เป็นไปได้
การตอบ/การดำเนินการอัจฉริยะในการแจ้งเตือน
Android 9 เปิดตัวความสามารถในการแสดงการตอบกลับที่แนะนำภายในการแจ้งเตือน Android 10 ขยายการให้บริการด้วยความสามารถในการรวมการดำเนินการตามความตั้งใจที่แนะนำ นอกจากนี้ แพลตฟอร์มยังสร้างคําแนะนําเหล่านี้ได้โดยอัตโนมัติ แอปจะยังคงแสดงคำแนะนำของตัวเองหรือเลือกไม่ใช้คำแนะนำที่ระบบสร้างขึ้นได้API ที่ใช้สร้างการตอบกลับเหล่านี้เป็นส่วนหนึ่งของ TextClassifier
และแสดงต่อนักพัฒนาแอปโดยตรงใน Android 10 ด้วย
โปรดอ่านข้อมูลเพิ่มเติมในส่วนการปรับปรุง TextClassifier
หากแอปของคุณให้คำแนะนำของตัวเอง แพลตฟอร์มจะไม่สร้างคำแนะนำอัตโนมัติ หากไม่ต้องการให้การแจ้งเตือนของแอปแสดงการตอบกลับหรือการดำเนินการที่แนะนำ คุณสามารถเลือกไม่ใช้การตอบกลับและการดำเนินการที่ระบบสร้างขึ้นได้โดยใช้ setAllowGeneratedReplies()
และ setAllowSystemGeneratedContextualActions()