API Android 2.3.3

Cấp độ API: 10

Android 2.3.3 (GINGERBREAD_MR1) là một bản phát hành tính năng nhỏ bổ sung một số điểm cải tiến và API cho nền tảng Android 2.3.

Đối với các nhà phát triển, nền tảng Android 2.3.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 2.3.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 tính năng mới dành cho nhà phát triển trong phiên bản 2.3.3, bao gồm các tính năng mới và các thay đổi trong API khung kể từ phiên bản trước.

Giao tiếp phạm vi gần (NFC)

Android 2.3.3 cung cấp dịch vụ hỗ trợ mở rộng và cải tiến cho NFC, để cho phép các ứng dụng tương tác với nhiều loại thẻ hơn theo những cách mới.

Một bộ API mới, toàn diện sẽ cho phép ứng dụng đọc và ghi nhiều công nghệ thẻ chuẩn hơn, bao gồm:

  • NFC-A (ISO 14443-3A)
  • NFC-B (ISO 14443-3B)
  • NFC-F (JIS 6319-4)
  • NFC-V (ISO 15693)
  • ISO-DEP (ISO 14443-4)
  • MIFARE Classic
  • MIFARE Siêu nhẹ
  • Thẻ NDEF của diễn đàn NFC

Nền tảng này cũng cung cấp API và giao thức giao tiếp ngang hàng giới hạn. Hoạt động trên nền trước có thể sử dụng API để đăng ký thông báo NDEF. Thông báo này sẽ được đẩy tới các thiết bị NFC khác khi chúng kết nối.

Giờ đây, việc điều phối thẻ nâng cao cho phép các ứng dụng kiểm soát tốt hơn cách thức và thời điểm khởi chạy, khi phát hiện thẻ NFC. Trước đây, nền tảng này sử dụng tính năng gửi ý định một bước để thông báo cho các ứng dụng quan tâm rằng đã phát hiện thấy một thẻ. Nền tảng này hiện sử dụng quy trình 4 bước cho phép ứng dụng trên nền trước kiểm soát sự kiện thẻ trước khi sự kiện đó được truyền sang bất kỳ ứng dụng nào khác (android.nfc.NfcAdapter.enableForegroundDispatch()). Quy trình điều phối mới cũng cho phép ứng dụng theo dõi nội dung thẻ và công nghệ thẻ cụ thể, dựa trên 2 thao tác theo ý định mới là android.nfc.action.NDEF_DISCOVEREDandroid.nfc.action.TECH_DISCOVERED.

API NFC có trong các gói android.nfcandroid.nfc.tech. Các lớp chính là:

  • NfcAdapter đại diện cho phần cứng NFC trên thiết bị.
  • NdefMessage, đại diện cho thông báo dữ liệu NDEF, định dạng chuẩn mà trong đó "bản ghi" chứa dữ liệu được truyền giữa các thiết bị và thẻ. Một thông báo NDEF nhất định có nhiều bản ghi NDEF thuộc nhiều loại. Ứng dụng có thể nhận những thông báo này từ Ý định NDEF_DISCOVERED, TECH_DISCOVERED hoặc TAG_DISCOVERED.
  • NdefRecord, được phân phối trong NdefMessage, mô tả loại dữ liệu được chia sẻ và tự mang dữ liệu đó.
  • Tag đại diện cho một thẻ do thiết bị quét. Nhiều loại thẻ được hỗ trợ, dựa trên công nghệ thẻ cơ bản.
  • TagTechnology, một giao diện cho phép ứng dụng truy cập vào các thuộc tính của thẻ và hoạt động I/O dựa trên các công nghệ có trong thẻ. Để biết danh sách đầy đủ các công nghệ thẻ được hỗ trợ trên Android 2.3.3, hãy xem android.nfc.tech.

Hoạt động giao tiếp NFC hoạt động dựa trên công nghệ không dây trong phần cứng của thiết bị, do đó không có ở một số thiết bị Android. Các thiết bị Android không hỗ trợ NFC sẽ trả về một đối tượng rỗng khi getDefaultAdapter(Context) được gọi và context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC) sẽ trả về false. Tuy nhiên, API NFC luôn có sẵn bất kể có hỗ trợ phần cứng cơ bản nào.

Để sử dụng API NFC, các ứ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.NFC"> trong tệp kê khai.

Ngoài ra, nhà phát triển có thể yêu cầu lọc trên Google Play, sao cho người dùng có thiết bị không hỗ trợ NFC không tìm thấy ứng dụng của họ. Để yêu cầu lọc, hãy thêm <uses-feature android:name="android.hardware.nfc" android:required="true"> vào tệp kê khai của ứng dụng.

Để biết thêm thông tin, hãy đọc hướng dẫn cho nhà phát triển về NFC.

Bluetooth

Android 2.3.3 bổ sung tính năng hỗ trợ API và nền tảng cho các kết nối ổ cắm không an toàn qua Bluetooth. Điều này cho phép các ứng dụng giao tiếp với các thiết bị đơn giản có thể không cung cấp giao diện người dùng để xác thực. Hãy xem createInsecureRfcommSocketToServiceRecord(java.util.UUID)listenUsingInsecureRfcommWithServiceRecord(java.lang.String, java.util.UUID) để biết thêm thông tin.

Đồ hoạ

  • Một lớp BitmapRegionDecoder mới cho phép các ứng dụng giải mã một vùng hình chữ nhật bằng hình ảnh. API này đặc biệt hữu ích khi hình ảnh gốc có kích thước lớn và ứng dụng chỉ cần một phần của hình ảnh.
  • Trường inPreferQualityOverSpeed mới trong BitmapFactory.Options cho phép các ứng dụng sử dụng phương thức IDCT chính xác hơn nhưng chậm hơn một chút trong phương thức giải mã JPEG. Điều này sẽ cải thiện chất lượng của hình ảnh được tạo lại.

Khung nội dung đa phương tiện

Nhận dạng lời nói

API nhận dạng giọng nói bao gồm các hằng số mới để cho phép bạn quản lý kết quả tìm kiếm bằng giọng nói theo những cách mới. Mặc dù không cần hằng số mới cho việc sử dụng tính năng nhận dạng lời nói bình thường, nhưng bạn có thể sử dụng các hằng số này để cung cấp một khung hiển thị khác cho kết quả tìm kiếm bằng giọng nói trong ứng dụng của mình. Để biết thông tin, hãy xem RecognizerResultsIntent.

Cấp độ API:

Nền tảng Android 2.3.3 cung cấp phiên bản cập nhật của API khung. API Android 2.3.3 được gán một giá trị nhận dạng số nguyên — 10 — đượ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 ứ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 2.3.3 trong ứng dụng, bạn cần biên dịch ứng dụng dựa trên thư viện Android được cung cấp trong nền tảng SDK Android 2.3.3. Tuỳ thuộc vào nhu cầu của mình, bạn cũng có thể thêm thuộc tính android:minSdkVersion="10" vào phần tử <uses-sdk> trong tệp kê khai của ứng dụng. Nếu ứng dụng của bạn được thiết kế để chỉ chạy trên Android 2.3 trở lên, việc khai báo thuộc tính này sẽ ngăn cài đặt ứng dụng trên các phiên bản trước đó của nền tảng.

Để biết thêm thông tin, hãy đọc bài viết Cấp độ API là gì?