API ของ Android 4.0.3

ระดับ API: 15

Android 4.0.3 (ICE_CREAM_SANDWICH_MR1) เป็นรุ่นที่อัปเกรดจากตระกูลแพลตฟอร์ม Android 4.0 (ICE_CREAM_SANDWICH) รุ่นนี้ประกอบด้วยฟีเจอร์ใหม่สำหรับผู้ใช้และนักพัฒนาแอป การเปลี่ยนแปลง API และการแก้ไขข้อบกพร่องต่างๆ

สำหรับนักพัฒนาแอป แพลตฟอร์ม Android 4.0.3 มีให้บริการเป็นคอมโพเนนต์ที่ดาวน์โหลดได้สำหรับ Android SDK แพลตฟอร์มที่ดาวน์โหลดได้ประกอบด้วยคลัง Android และภาพระบบ รวมถึงชุดสกินโปรแกรมจำลองและอื่นๆ หากต้องการเริ่มพัฒนาหรือทดสอบกับ Android 4.0.3 ให้ใช้เครื่องมือจัดการ Android SDK เพื่อดาวน์โหลดแพลตฟอร์มลงใน SDK

ภาพรวมของ API

ส่วนด้านล่างแสดงภาพรวมทางเทคนิคของ API ใหม่ใน Android 4.0.3

Social Stream API ใน Contacts Provider

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

ตารางฐานข้อมูลที่เป็นสตรีมโซเชียลของรายชื่อติดต่อแต่ละรายจะกำหนดโดย android.provider.ContactsContract.StreamItems ซึ่ง URI ของตารางจะฝังอยู่ในไดเรกทอรี ContactsContract.RawContacts ที่เป็นเจ้าของรายการสตรีม ตารางสตรีมโซเชียลแต่ละตารางจะมีคอลัมน์หลายคอลัมน์สำหรับข้อมูลเมตาเกี่ยวกับรายการสตรีมแต่ละรายการ เช่น ไอคอนที่แสดงแหล่งที่มา (รูปโปรไฟล์) ป้ายกำกับของรายการ เนื้อหาข้อความหลัก ความคิดเห็นเกี่ยวกับรายการ (เช่น การตอบกลับจากผู้อื่น) และอื่นๆ รูปภาพที่เชื่อมโยงกับสตรีมจะจัดเก็บไว้ในตารางอื่น ซึ่งกำหนดโดย android.provider.ContactsContract.StreamItemPhotos ซึ่งมีอยู่ในรูปแบบไดเรกทอรีย่อยของ android.provider.ContactsContract.StreamItems Uri

ดูข้อมูลเพิ่มเติมได้ที่ android.provider.ContactsContract.StreamItems และ android.provider.ContactsContract.StreamItemPhotos

หากต้องการอ่านหรือเขียนรายการสตรีมโซเชียลสําหรับรายชื่อติดต่อ แอปพลิเคชันต้องขอสิทธิ์จากผู้ใช้โดยการประกาศ <uses-permission android:name="android.permission.READ_SOCIAL_STREAM"> และ/หรือ <uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM"> ในไฟล์ Manifest

ผู้ให้บริการปฏิทิน
  • เพิ่มคลาส CalendarContract.Colors เพื่อแสดงตารางสีในผู้ให้บริการปฏิทิน คลาสนี้มีช่องสําหรับเข้าถึงสีที่ใช้ได้สําหรับบัญชีหนึ่งๆ ระบบจะอ้างอิงสีด้วย COLOR_KEY ซึ่งต้องไม่ซ้ำกันสำหรับชื่อ/ประเภทบัญชีหนึ่งๆ มีเพียงอะแดปเตอร์การซิงค์เท่านั้นที่จะอัปเดตค่าเหล่านี้ได้
  • เพิ่ม ALLOWED_AVAILABILITY และ ALLOWED_ATTENDEE_TYPES สำหรับการรองรับการแลกเปลี่ยน/การซิงค์
  • เพิ่ม TYPE_RESOURCE (เช่น ห้องประชุม) สำหรับผู้เข้าร่วมและ AVAILABILITY_TENTATIVE รวมถึง EVENT_COLOR_KEY สำหรับกิจกรรม

วิดเจ็ตในหน้าจอหลัก

ตั้งแต่ Android 4.0 เป็นต้นไป วิดเจ็ตหน้าจอหลักไม่ควรมีการเว้นวรรคของตนเองอีกต่อไป แต่ตอนนี้ระบบจะเพิ่มระยะห่างจากขอบโดยอัตโนมัติสำหรับวิดเจ็ตแต่ละรายการโดยอิงตามลักษณะของหน้าจอปัจจุบัน ซึ่งทำให้วิดเจ็ตในตารางกริดแสดงผลอย่างสม่ำเสมอมากขึ้น แพลตฟอร์มมีวิธีการใหม่ getDefaultPaddingForWidget() เพื่อช่วยแอปพลิเคชันที่โฮสต์วิดเจ็ตหน้าจอหลัก แอปพลิเคชันสามารถเรียกใช้เมธอดนี้เพื่อรับการเว้นวรรคที่ระบบกําหนดไว้และพิจารณาการเว้นวรรคดังกล่าวเมื่อคํานวณจํานวนเซลล์ที่จะจัดสรรให้กับวิดเจ็ต

การตรวจตัวสะกด

  • สําหรับแอปที่เข้าถึงบริการตรวจตัวสะกด วิธีการ cancel() ใหม่จะยกเลิกงานตรวจตัวสะกดที่รอดําเนินการและดําเนินการอยู่ในเซสชัน
  • สําหรับบริการตรวจตัวสะกด FLAG คำแนะนำใหม่ RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS จะช่วยให้บริการแยกแยะคำแนะนำที่มีความน่าเชื่อถือสูงออกจากคำแนะนำที่มีความน่าเชื่อถือต่ำได้ ตัวอย่างเช่น ตัวตรวจตัวสะกดอาจตั้งค่าการแจ้งว่าไม่ถูกต้องหากคำที่ป้อนไม่อยู่ในพจนานุกรมของผู้ใช้ แต่มีคำที่แนะนำซึ่งน่าจะถูกต้อง หรืออาจไม่ตั้งค่าการแจ้งว่าไม่ถูกต้องหากคำที่ป้อนไม่อยู่ในพจนานุกรมและมีคำที่แนะนำซึ่งน่าจะมีประโยชน์น้อย

    แอปที่เชื่อมต่อกับโปรแกรมตรวจตัวสะกดสามารถใช้ Flag RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONSร่วมกับแอตทริบิวต์คำแนะนำอื่นๆ รวมถึงเมธอด getSuggestionsAttributes() และ getSuggestionsCount() เพื่อพิจารณาว่าจะทําเครื่องหมายคำที่ป้อนว่าเป็นคำที่พิมพ์ผิดและแสดงคําแนะนําหรือไม่

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

บลูทูธ

เมธอดสาธารณะใหม่ fetchUuidsWithSdp() และ getUuids() ช่วยให้แอประบุฟีเจอร์ (UUID) ที่อุปกรณ์ระยะไกลรองรับ ในกรณีของ fetchUuidsWithSdp() ระบบจะทำการค้นหาบริการในอุปกรณ์ระยะไกลเพื่อรับ UUID ที่รองรับ จากนั้นจะออกอากาศผลลัพธ์ใน Intent ACTION_UUID

ชุดเครื่องมือ UI

เมธอดใหม่ setUserVisibleHint() และ getUserVisibleHint() ช่วยให้เศษข้อมูลสามารถตั้งค่าคำแนะนำว่าผู้ใช้มองเห็นเศษข้อมูลดังกล่าวหรือไม่ในขณะนี้ ระบบจะเลื่อนเวลาเริ่มต้นของข้อมูลโค้ดที่ผู้ใช้มองไม่เห็นจนกว่าโปรแกรมโหลดสำหรับข้อมูลโค้ดที่มองเห็นได้จะทำงาน คำแนะนำระดับการแชร์จะเป็น "จริง" โดยค่าเริ่มต้น

กราฟิก

การช่วยเหลือพิเศษ

  • ตอนนี้ไคลเอ็นต์ของ RemoteViews สามารถใช้เมธอด setContentDescription() เพื่อตั้งค่าและรับคำอธิบายเนื้อหาของมุมมองใดก็ได้ในเลย์เอาต์แบบขยาย
  • เมธอด getMaxScrollX(), getMaxScrollY(), setMaxScrollX() และ setMaxScrollY() ช่วยให้แอปรับและตั้งค่าระยะเลื่อนสูงสุดสําหรับออบเจ็กต์ AccessibilityRecord ได้
  • เมื่อเปิดใช้โหมดการสำรวจด้วยการสัมผัส การตั้งค่าใหม่อย่างปลอดภัย ACCESSIBILITY_SPEAK_PASSWORD จะระบุว่าผู้ใช้ขอให้ IME อ่านออกเสียงข้อความที่ป้อนในช่องรหัสผ่านหรือไม่ แม้ว่าจะไม่ได้ใช้ชุดหูฟังก็ตาม โดยค่าเริ่มต้น ระบบจะไม่อ่านออกเสียงข้อความรหัสผ่าน เว้นแต่จะใช้ชุดหูฟัง

การอ่านออกเสียงข้อความ

  • เพิ่มเมธอดใหม่ getFeatures()สําหรับการค้นหาและเปิดใช้การรองรับ TTS ของเครือข่าย
  • เพิ่มคลาส Listener ใหม่ UtteranceProgressListener ที่เครื่องมือสามารถลงทะเบียนเพื่อรับการแจ้งเตือนข้อผิดพลาดในการสังเคราะห์เสียงพูด

ฐานข้อมูล

  • คลาส CrossProcessCursorWrapper ใหม่ช่วยให้ผู้ให้บริการเนื้อหาแสดงผลลัพธ์สำหรับการค้นหาข้ามกระบวนการได้อย่างมีประสิทธิภาพมากขึ้น คลาสใหม่นี้เป็นองค์ประกอบพื้นฐานที่มีประโยชน์สำหรับการตัดเคอร์เซอร์ที่จะส่งไปยังกระบวนการจากระยะไกล นอกจากนี้ยังเปลี่ยนCursorออบเจ็กต์ธรรมดาให้กลายเป็นCrossProcessCursorออบเจ็กต์ได้แบบโปร่งใส

    คลาส CrossProcessCursorWrapper จะแก้ไขปัญหาด้านประสิทธิภาพและข้อบกพร่องที่พบบ่อยซึ่งแอปพลิเคชันพบเมื่อติดตั้งใช้งานผู้ให้บริการเนื้อหา

  • ตอนนี้ตัวสร้าง CursorWindow(java.lang.String) ใช้สตริงชื่อเป็นอินพุตแล้ว ระบบไม่แยกความแตกต่างระหว่างหน้าต่างเคอร์เซอร์ในเครื่องกับระยะไกลอีกต่อไป เราจึงเลิกใช้งาน CursorWindow(boolean) แล้ว

Intent

เพิ่มหมวดหมู่ใหม่สําหรับกําหนดเป้าหมายแอปพลิเคชันประเภทต่างๆ ทั่วไปในอุปกรณ์ เช่น CATEGORY_APP_BROWSER, CATEGORY_APP_CALENDAR, CATEGORY_APP_MAPS และอื่นๆ

กล้อง

สิทธิ์

สิทธิ์ใหม่มีดังนี้

  • android.Manifest.permission#READ_SOCIAL_STREAM และ android.Manifest.permission#WRITE_SOCIAL_STREAM: อนุญาตให้อะแดปเตอร์การซิงค์อ่านและเขียนข้อมูลสตรีมโซเชียลไปยังรายชื่อติดต่อในผู้ให้บริการรายชื่อติดต่อที่แชร์

ดูรายละเอียดการเปลี่ยนแปลง API ทั้งหมดใน Android 4.0.3 (ระดับ API 15) ได้ที่รายงานความแตกต่างของ API

ระดับ API

Android 4.0.3 API จะได้รับตัวระบุจำนวนเต็ม 15 ซึ่งระบบจะจัดเก็บไว้ ตัวระบุนี้เรียกว่า "ระดับ API" ซึ่งช่วยให้ระบบสามารถระบุได้อย่างถูกต้องว่าแอปพลิเคชันใช้งานร่วมกับระบบได้หรือไม่ก่อนที่จะติดตั้งแอปพลิเคชัน

หากต้องการใช้ API ที่เปิดตัวใน Android 4.0.3 ในแอปพลิเคชัน คุณต้องคอมไพล์แอปพลิเคชันกับแพลตฟอร์ม Android ที่รองรับ API ระดับ 15 ขึ้นไป คุณอาจต้องเพิ่มแอตทริบิวต์ android:minSdkVersion="15" ลงในองค์ประกอบ <uses-sdk> ด้วย ทั้งนี้ขึ้นอยู่กับความต้องการ

ดูข้อมูลเพิ่มเติมได้ที่เอกสารระดับ API