API Android 4.0.3

Cấp độ API: 15

Android 4.0.3 (ICE_CREAM_SANDWICH_MR1) là bản phát hành gia tăng của nhóm nền tảng Android 4.0 (ICE_CREAM_SANDWICH). Bản phát hành này bao gồm các tính năng mới cho người dùng và nhà phát triển, các thay đổi về API và nhiều bản sửa lỗi.

Đối với các nhà phát triển, nền tảng Android 4.0.3 có sẵn dưới dạng một thành phần có thể tải xuống cho SDK Android. Nền tảng có thể tải xuống bao gồm thư viện Android và hình ảnh hệ thống, cũng như một bộ giao diện trình mô phỏng và nhiều nội dung khác. Để bắt đầu phát triển hoặc kiểm thử trên Android 4.0.3, hãy sử dụng Trình quản lý SDK Android để tải nền tảng này xuống SDK của bạn.

Tổng quan về API

Các phần dưới đây cung cấp tổng quan kỹ thuật về các API mới trong Android 4.0.3.

API luồng trên mạng xã hội trong Trình cung cấp danh bạ

Các ứng dụng sử dụng dữ liệu luồng trên mạng xã hội như cập nhật trạng thái và đăng ký giờ đây có thể đồng bộ hoá dữ liệu đó với từng địa chỉ liên hệ của người dùng, cung cấp các mục trong luồng cùng với ảnh của mỗi danh bạ.

Bảng cơ sở dữ liệu chứa luồng mạng xã hội của một người liên hệ cá nhân được xác định bằng android.provider.ContactsContract.StreamItems. URI được lồng trong thư mục ContactsContract.RawContacts chứa các mục trong luồng. Mỗi bảng luồng trên mạng xã hội bao gồm một vài cột cho siêu dữ liệu về từng mục trong luồng, chẳng hạn như biểu tượng đại diện cho nguồn (hình đại diện), nhãn cho mục, nội dung văn bản chính, nhận xét về mục (chẳng hạn như phản hồi của người khác) và các cột khác. Ảnh liên kết với một luồng được lưu trữ trong một bảng khác, được xác định bởi android.provider.ContactsContract.StreamItemPhotos dưới dạng thư mục con của android.provider.ContactsContract.StreamItems URI.

Hãy xem android.provider.ContactsContract.StreamItems và android.provider.ContactsContract.StreamItemPhotos để biết thêm thông tin.

Để đọc hoặc ghi các mục luồng trên mạng xã hội cho một liên hệ, ứng dụng phải yêu cầu người dùng cấp quyền bằng cách khai báo <uses-permission android:name="android.permission.READ_SOCIAL_STREAM"> và/hoặc <uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM"> trong tệp kê khai.

Nhà cung cấp lịch

Tiện ích trên màn hình chính

Kể từ Android 4.0, các tiện ích trên màn hình chính sẽ không còn khoảng đệm riêng nữa. Thay vào đó, hệ thống hiện sẽ tự động thêm khoảng đệm cho từng tiện ích, dựa trên các đặc điểm của màn hình hiện tại. Điều này giúp hiển thị các tiện ích đồng nhất và nhất quán hơn trong lưới. Để hỗ trợ các ứng dụng lưu trữ tiện ích trên màn hình chính, nền tảng này sẽ cung cấp một phương thức mới getDefaultPaddingForWidget(). Các ứng dụng có thể gọi phương thức này để lấy khoảng đệm do hệ thống xác định và tính đến khoảng đệm đó khi tính toán số lượng ô cần phân bổ cho tiện ích.

Kiểm tra chính tả

  • Đối với các ứng dụng truy cập vào dịch vụ kiểm tra chính tả, phương thức cancel() mới sẽ huỷ mọi tác vụ đang chờ xử lý và đang chạy của trình kiểm tra chính tả trong một phiên.
  • Đối với dịch vụ kiểm tra chính tả, một cờ đề xuất mới RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS sẽ cho phép các dịch vụ phân biệt các đề xuất có độ tin cậy cao hơn với các đề xuất có độ tin cậy thấp hơn. Ví dụ: trình kiểm tra chính tả có thể đặt cờ nếu từ đầu vào không có trong từ điển người dùng nhưng có khả năng có đề xuất hoặc không đặt cờ nếu từ nhập không có trong từ điển và có các đề xuất có thể kém hữu ích.

    Các ứng dụng kết nối với trình kiểm tra chính tả có thể sử dụng cờ RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS kết hợp với các thuộc tính đề xuất khác, cũng như phương thức getSuggestionsAttributes()getSuggestionsCount() để xác định xem có nên đánh dấu từ nhập là lỗi chính tả hay không và đưa ra đề xuất.

  • Kiểu FLAG_AUTO_CORRECTION mới cho các span văn bản chỉ ra rằng tính năng tự động sửa lỗi sắp được áp dụng cho một từ/văn bản mà người dùng đang nhập/soạn. Loại đề xuất này được hiển thị theo cách khác để cho biết quá trình tự động sửa lỗi đang diễn ra.

Bluetooth

Các phương thức công khai mới fetchUuidsWithSdp()getUuids() cho phép ứng dụng xác định các tính năng (mã nhận dạng duy nhất (UUID)) được thiết bị từ xa hỗ trợ. Trong trường hợp fetchUuidsWithSdp(), hệ thống sẽ thực hiện việc khám phá dịch vụ trên thiết bị từ xa để lấy các mã nhận dạng duy nhất (UUID) được hỗ trợ, sau đó thông báo kết quả trong một ý định ACTION_UUID.

Bộ công cụ giao diện người dùng

Các phương thức mới setUserVisibleHint()getUserVisibleHint() cho phép một mảnh đặt gợi ý về việc người dùng có nhìn thấy mảnh hay không. Hệ thống trì hoãn việc bắt đầu của các mảnh mà người dùng không nhìn thấy cho đến khi trình tải các mảnh hiển thị đã chạy. Gợi ý về chế độ hiển thị là "true" theo mặc định.

Đồ hoạ

Hỗ trợ tiếp cận

  • Giờ đây, ứng dụng của RemoteViews có thể sử dụng phương thức setContentDescription() để đặt và lấy nội dung mô tả nội dung của bất kỳ Khung hiển thị nào trong bố cục được tăng cường.
  • Các phương thức getMaxScrollX(), getMaxScrollY(), setMaxScrollX()setMaxScrollY() cho phép các ứng dụng nhận và đặt độ lệch cuộn tối đa cho đối tượng AccessibilityRecord.
  • Khi bạn bật chế độ khám phá bằng thao tác chạm, một chế độ cài đặt bảo mật mới ACCESSIBILITY_SPEAK_PASSWORD sẽ cho biết liệu người dùng có yêu cầu IME đọc văn bản đã nhập vào các trường mật khẩu hay không, ngay cả khi không sử dụng tai nghe. Theo mặc định, văn bản mật khẩu sẽ không được đọc trừ phi bạn đang sử dụng tai nghe.

Chuyển văn bản thành giọng nói

  • Thêm phương thức mới getFeatures() để truy vấn và bật tính năng hỗ trợ TTS mạng.
  • Thêm một lớp trình nghe mới là UtteranceProgressListener để các công cụ có thể đăng ký nhận thông báo về lỗi tổng hợp giọng nói.

Cơ sở dữ liệu

  • Một lớp CrossProcessCursorWrapper mới cho phép trình cung cấp nội dung trả về kết quả cho truy vấn trên nhiều quy trình một cách hiệu quả hơn. Lớp mới là một thành phần hữu ích để gói các con trỏ sẽ được gửi đến các quy trình từ xa. Hàm này cũng có thể chuyển đổi các đối tượng Cursor thông thường thành đối tượng CrossProcessCursor một cách minh bạch.

    Lớp CrossProcessCursorWrapper khắc phục các vấn đề về hiệu suất và lỗi phổ biến mà ứng dụng gặp phải khi triển khai trình cung cấp nội dung.

  • Hàm khởi tạo CursorWindow(java.lang.String) hiện lấy chuỗi tên làm dữ liệu đầu vào. Hệ thống không còn phân biệt giữa cửa sổ con trỏ cục bộ và từ xa nữa, vì vậy CursorWindow(boolean) hiện không được dùng nữa.

Ý định

Thêm các danh mục mới để nhắm đến các loại ứng dụng phổ biến trên thiết bị, chẳng hạn như CATEGORY_APP_BROWSER, CATEGORY_APP_CALENDAR, CATEGORY_APP_MAPS, v.v.

Camera

Quyền

Sau đây là các quyền mới:

  • android.Manifest.permission#READ_SOCIAL_STREAM và android.Manifest.permission#WRITE_SOCIAL_STREAM: Cho phép bộ điều hợp đồng bộ hoá đọc và ghi dữ liệu luồng trên mạng xã hội vào một người liên hệ trong Trình cung cấp danh bạ dùng chung.

Để biết thông tin chi tiết về tất cả các thay đổi đối với API trong Android 4.0.3 (API cấp 15), hãy xem Báo cáo điểm khác biệt về API.

Cấp độ API:

API Android 4.0.3 được chỉ định một giá trị nhận dạng số nguyên (15) được lưu trữ trong chính hệ thống. Giá trị nhận dạng này được gọi là "cấp độ API" cho phép hệ thống xác định chính xác liệu một ứng dụng có tương thích với hệ thống hay không trước khi cài đặt ứng dụng.

Để sử dụng các API được giới thiệu trong Android 4.0.3 trong ứng dụng, bạn cần biên dịch ứng dụng dựa trên một nền tảng Android hỗ trợ API cấp 15 trở lên. Tuỳ thuộc vào nhu cầu của mình, bạn cũng có thể cần thêm thuộc tính android:minSdkVersion="15" vào phần tử <uses-sdk>.

Để biết thêm thông tin, hãy xem tài liệu về Cấp độ API.