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