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
- Thêm lớp
CalendarContract.Colors
để biểu thị bảng màu trong Trình cung cấp
lịch. Lớp này cung cấp các trường để truy cập vào màu có sẵn cho một tài khoản nhất định. Màu sắc được tham chiếu bằng COLOR_KEY
và phải là duy nhất cho một tên/loại tài khoản nhất định. Chỉ trình chuyển đổi đồng bộ hoá mới có thể cập nhật các giá trị này.
- Thêm
ALLOWED_AVAILABILITY
và ALLOWED_ATTENDEE_TYPES
để hỗ trợ tính năng trao đổi/đồng bộ hoá.
- Thêm
TYPE_RESOURCE
(chẳng hạn như phòng hội nghị) cho người tham dự và AVAILABILITY_TENTATIVE
cũng như EVENT_COLOR_KEY
cho sự kiện.
CalendarContract.Colors
để biểu thị bảng màu trong Trình cung cấp
lịch. Lớp này cung cấp các trường để truy cập vào màu có sẵn cho một tài khoản nhất định. Màu sắc được tham chiếu bằng COLOR_KEY
và phải là duy nhất cho một tên/loại tài khoản nhất định. Chỉ trình chuyển đổi đồng bộ hoá mới có thể cập nhật các giá trị này.ALLOWED_AVAILABILITY
và ALLOWED_ATTENDEE_TYPES
để hỗ trợ tính năng trao đổi/đồng bộ hoá.TYPE_RESOURCE
(chẳng hạn như phòng hội nghị) cho người tham dự và AVAILABILITY_TENTATIVE
cũng như EVENT_COLOR_KEY
cho sự kiện.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ứcgetSuggestionsAttributes()
và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()
và 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()
và 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ạ
- Phương thức mới
setDefaultBufferSize(int, int)
trongSurfaceTexture
đặt kích thước mặc định của vùng đệm hình ảnh. Bạn có thể dùng phương thức này để đặt kích thước hình ảnh khi tạo hình ảnh bằngCanvas
(thông qualockCanvas(Rect)
) hoặc OpenGL ES (thông qua EGLSurface). - Thêm định nghĩa cho các enum của tiện ích OpenGL ES GL_OES_EGL_image_external –
GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES
,GL_SAMPLER_EXTERNAL_OES
,GL_TEXTURE_BINDING_EXTERNAL_OES
vàGL_TEXTURE_EXTERNAL_OES
.
Hỗ trợ tiếp cận
- Giờ đây, ứng dụng của
RemoteViews
có thể sử dụng phương thứcsetContentDescription()
để đặ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()
vàsetMaxScrollY()
cho phép ứng dụng nhận và đặt độ lệch cuộn tối đa cho đối tượngAccessibilityRecord
. - 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ượngCursor
thông thường thành các đối tượngCrossProcessCursor
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
MediaMetadataRetriever
thêm hằng số mớiMETADATA_KEY_LOCATION
để cho phép ứng dụng truy cập vào thông tin vị trí của một hình ảnh hoặc video.CamcorderProfile
thêm hồ sơ độ phân giải QVGA (320x240). Mức chất lượng được biểu thị bằng các hằng sốQUALITY_QVGA
vàQUALITY_TIME_LAPSE_QVGA
.- Các phương thức mới
setVideoStabilization()
,getVideoStabilization()
vàisVideoStabilizationSupported()
cho phép bạn kiểm tra và quản lý tính năng ổn định video choCamera
.
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.