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 gia đình 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 dành 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 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 thông tin tổng quan kỹ thuật về các API mới trong Android 4.0.3.

API luồ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 mạng xã hội như thông tin cập nhật trạng thái và thông tin đăng ký tham gia giờ làm việc hiện có thể đồng bộ hoá dữ liệu đó với từng người liên hệ của người dùng, cung cấp các mục trong luồng cùng với ảnh cho từng mục.

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ệ riêng lẻ được xác định bằng android.provider.ContactsContract.StreamItems, Uri cho bảng này được lồng trong thư mục ContactsContract.RawContacts mà các mục trong luồng thuộc về. Mỗi bảng luồng xã hội bao gồm một số 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, bình luận về mục (chẳng hạn như phản hồi của người khác) và nhiều thông tin khác. Ảnh được liên kết với một luồng được lưu trữ trong một bảng khác, do android.provider.ContactsContract.StreamItemPhotos xác định, có sẵn dưới dạng thư mục con của Uri android.provider.ContactsContract.StreamItems.

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 trong luồng xã hội cho một người 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 không được có khoảng đệm riêng nữa. Thay vào đó, hệ thống hiện 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 trình bày các tiện ích trong lưới một cách nhất quán và đồng nhất hơn. Để hỗ trợ các ứng dụng lưu trữ tiện ích màn hình chính, nền tảng này 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 lỗi 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ụ kiểm tra chính tả đang chờ xử lý và đang chạy trong một phiên.
  • Đối với các dịch vụ kiểm tra chính tả, một cờ đề xuất mới, RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS, 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 một từ nhập không có trong từ điển của người dùng nhưng có gợi ý khả thi, hoặc không đặt cờ nếu một từ nhập không có trong từ điển và có gợi ý có thể ít hữu ích hơn.

    Các ứng dụng được 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ư các phương thức getSuggestionsAttributes()getSuggestionsCount() để xác định xem có đánh dấu từ nhập vào là lỗi chính tả và đưa ra đề xuất hay không.

  • Kiểu FLAG_AUTO_CORRECTION mới cho các span văn bản cho biết 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ị khác để cho biết tính năng 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 (UUID) mà thiết bị từ xa hỗ trợ. Trong trường hợp fetchUuidsWithSdp(), hệ thống sẽ thực hiện quá trình khám phá dịch vụ trên thiết bị từ xa để nhận các UUID được hỗ trợ, sau đó truyền phát kết quả trong ý đị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 mảnh đó hiện có hiển thị với người dùng hay không. Hệ thống sẽ trì hoãn việc bắt đầu các mảnh mà người dùng không nhìn thấy cho đến khi trình tải cho 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à nhận nội dung mô tả của bất kỳ Khung hiển thị nào trong bố cục tăng cường.
  • Các phương thức getMaxScrollX(), getMaxScrollY(), setMaxScrollX()setMaxScrollY() cho phép ứng dụng nhận và đặt độ lệch cuộn tối đa cho đối tượng AccessibilityRecord.
  • Khi chế độ khám phá bằng cảm ứng được bật, 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 người dùng không sử dụng tai nghe. Theo mặc định, hệ thống sẽ không đọc văn bản mật khẩu 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 qua mạng.
  • Thêm một lớp trình nghe mới, UtteranceProgressListener, mà các công cụ có thể đăng ký để nhận thông báo về lỗi tổng hợp lời nói.

Cơ sở dữ liệu

  • Lớp CrossProcessCursorWrapper mới cho phép 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 khối xây dựng hữu ích để gói con trỏ sẽ được gửi đến các quy trình từ xa. Lớp này cũng có thể chuyển đổi các đối tượng Cursor thông thường thành các đố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 thường gặp mà các ứng dụng gặp phải khi triển khai 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, 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ộ chuyển đổi đồng bộ hoá đọc và ghi dữ liệu luồng xã hội vào một người liên hệ trong Nhà cung cấp danh bạ dùng chung.

Để xem thông tin chi tiết về tất 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 gán 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 xem 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, 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.