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
- Thêm lớp
CalendarContract.Colors
để biểu thị bảng màu trong Nhà cung cấp lịch. Lớp này cung cấp các trường để truy cập vào các 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
.
Đây phải là màu riêng biệt cho một tên/loại tài khoản cụ thể. Chỉ bộ điều hợp đồ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ợ 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 các sự kiện.
CalendarContract.Colors
để biểu thị bảng màu trong Nhà cung cấp lịch. Lớp này cung cấp các trường để truy cập vào các 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
.
Đây phải là màu riêng biệt cho một tên/loại tài khoản cụ thể. Chỉ bộ điều hợp đồ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ợ 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 các 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 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ứcgetSuggestionsAttributes()
và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()
và 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()
và 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ạ
- 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 OpenGL ES –
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à 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()
vàsetMaxScrollY()
cho phép các ứng dụng nhận và đặt độ lệch cuộn tối đa cho đối tượngAccessibilityRecord
. - 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ượngCursor
thông thường thành đố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 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ậyCursorWindow(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ốMETADATA_KEY_LOCATION
mới để cho phép các ứ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 các cấu hình độ 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
.andQUALITY_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ộ đ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.