API Android 2.3

Cấp độ API: 9

Đối với nhà phát triển, Android 2.3 (GINGERBREAD)nền tảng có sẵn dưới dạng 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, hãy sử dụng Trình quản lý SDK Android để tải nền tảng 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 về kỹ thuật của những tính năng mới dành cho nhà phát triển trong 2.3, bao gồm các tính năng mới và các thay đổi trong khung API kể từ phiên bản trước.

VoIP dựa trên SIP

Nền tảng này hiện bao gồm ngăn xếp giao thức SIP và API khung cho phép các nhà phát triển xây dựng các ứng dụng điện thoại internet. Khi sử dụng API này, các ứng dụng có thể cung cấp các tính năng gọi thoại mà không cần quản lý các phiên, giao tiếp cấp truyền tải hoặc âm thanh. Các tính năng này được API SIP và các dịch vụ của nền tảng xử lý một cách minh bạch.

API SIP có trong gói android.net.sip. Lớp khoá là SipManager, các ứng dụng sử dụng lớp này để thiết lập và quản lý hồ sơ SIP, sau đó bắt đầu cuộc gọi âm thanh và nhận cuộc gọi âm thanh. Sau khi thiết lập cuộc gọi âm thanh, các ứng dụng có thể tắt tiếng cuộc gọi, bật chế độ loa, gửi âm DTMF, v.v. Các ứng dụng cũng có thể sử dụng SipManager để tạo các kết nối SIP chung.

Các dịch vụ và ngăn xếp SIP cơ bản của nền tảng này có trên các thiết bị tại tuỳ ý của nhà sản xuất và nhà mạng liên kết. Vì lý do này, ứng dụng nên dùng phương thức isApiSupported() để kiểm tra xem có hỗ trợ SIP hay không trước khi tiết lộ chức năng gọi cho người dùng.

Để sử dụng API SIP, ứng dụng phải yêu cầu người dùng cấp quyền chậm nhất vào ngày khai báo <uses-permission android:name="android.permission.INTERNET"><uses-permission android:name="android.permission.USE_SIP"> 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 dụng của họ không thể phát hiện được đối với người dùng có thiết bị không bao gồm ngăn xếp SIP và các dịch vụ của nền tảng. Để yêu cầu lọc, hãy thêm <uses-feature android:name="android.software.sip" android:required="true"><uses-feature android:name="android.software.sip.voip"> vào tệp kê khai ứng dụng.

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

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

Android 2.3 bao gồm một ngăn xếp NFC và API khung cho phép nhà phát triển đọc thẻ NDEF được phát hiện khi người dùng chạm vào một thiết bị hỗ trợ NFC để gắn thẻ các phần tử được nhúng trong hình dán, áp phích thông minh và thậm chí là các thiết bị khác.

Nền tảng này cung cấp các dịch vụ NFC cơ bản hoạt động với phần cứng của thiết bị để khám phá thẻ khi thẻ đó nằm trong phạm vi. Khi khám phá một thẻ, nền tảng thông báo cho các ứng dụng bằng cách truyền phát một Ý định, thêm Thông báo NDEF đến Ý định dưới dạng dữ liệu bổ sung. Các ứng dụng có thể tạo Bộ lọc ý định để nhận dạng và xử lý các thẻ và thư được nhắm mục tiêu. Ví dụ: sau khi nhận được theo Ý định, ứng dụng trích xuất thông báo NDEF, lưu trữ chúng, cảnh báo người dùng hoặc xử lý chúng theo những cách khác.

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

  • NfcAdapter, đại diện cho phần cứng NFC trên thiết bị.
  • NdefMessage, đại diện cho một thông báo dữ liệu NDEF, định dạng chuẩn trong đó "bản ghi" mang dữ liệu được truyền giữa thiết bị và thẻ. Ứng dụng có thể nhận các thông báo này từ Ý định ACTION_TAG_DISCOVERED.
  • NdefRecord, phân phối trong khoảng NdefMessage, mô tả loại dữ liệu được chia sẻ và tự mang dữ liệu.

Giao tiếp NFC dựa vào công nghệ không dây trong phần cứng của thiết bị, vì vậy, việc hỗ trợ các tính năng NFC của nền tảng trên các thiết bị cụ thể là do nhà sản xuất thiết bị xác định. Để xác định tính năng hỗ trợ NFC trên thiết bị hiện tại, các ứng dụng có thể gọi isEnabled() để truy vấn NfcAdapter. API NFC luôn xuất hiện, tuy nhiên, bất kể hỗ trợ phần cứng cơ bản là gì.

Để sử dụng NFC API, ứ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 dụng của họ không thể phát hiện được đối với người dùng có thiết bị không hỗ trợ Công nghệ Giao tiếp phạm vi gần (NFC). Để 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.

Để xem xét ứng dụng mẫu sử dụng API NFC, hãy xem Bản minh hoạ về NFC.

Con quay hồi chuyển và các cảm biến khác

Android 2.3 bổ sung tính năng hỗ trợ nền tảng và API cho một số loại đọc cảm biến mới – con quay hồi chuyển, vectơ xoay, gia tốc tuyến tính, trọng lực và áp kế. Các nhà phát triển có thể sử dụng các chỉ số cảm biến mới để tạo ra các ứng dụng phản hồi các thay đổi chính xác về vị trí và chuyển động của thiết bị một cách nhanh chóng và trơn tru. Chiến lược phát hành đĩa đơn API cảm biến báo cáo con quay hồi chuyển và các thay đổi khác đối với cảm biến đối với các ứng dụng, cho dù chúng đang chạy trên khung ứng dụng hay trong ứng dụng gốc .

Xin lưu ý rằng bộ cảm biến phần cứng cụ thể có trên thiết bị bất kỳ sẽ thay đổi tuỳ theo quyết định của nhà sản xuất thiết bị.

Nhà phát triển có thể yêu cầu lọc trên Google Play để người dùng không tìm thấy ứng dụng của họ nếu thiết bị của người dùng không có cảm biến con quay hồi chuyển. Để thực hiện việc này, hãy thêm <uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true"> vào tệp kê khai ứng dụng.

Để biết thông tin chi tiết về API, hãy xem Sensor.

Hỗ trợ nhiều camera

Giờ đây, các ứng dụng có thể sử dụng mọi máy ảnh có trên thiết bị để chụp ảnh hoặc quay video. Camera cho phép các ứng dụng truy vấn số lượng máy ảnh có sẵn và các đặc điểm riêng biệt của từng máy ảnh.

  • Lớp Camera.CameraInfo mới sẽ lưu trữ thông tin của một máy ảnh đặc điểm vị trí (hướng, mặt trước hoặc mặt sau).
  • Các phương thức getNumberOfCameras()getCameraInfo() mới trong lớp Camera cho phép các ứng dụng truy vấn các máy ảnh có sẵn và mở máy ảnh mà chúng cần.
  • Phương thức get() mới cho phép các ứng dụng truy xuất CamcorderProfile của một máy ảnh cụ thể.
  • getJpegEncodingQualityParameter() mới cho phép các ứng dụng lấy cấp chất lượng chụp ảnh tĩnh cho một máy ảnh cụ thể.

Để xem mã mẫu truy cập vào máy ảnh mặt trước, hãy xem CameraPreview.java trong ứng dụng mẫu ApiDemos.

API Máy ảnh cũng thêm:

Hiệu ứng âm thanh có thể kết hợp

Khung nội dung đa phương tiện của nền tảng này hỗ trợ thêm các hiệu ứng âm thanh mới cho mỗi bản nhạc hoặc hiệu ứng âm thanh chung, bao gồm tăng âm trầm, ảo hoá tai nghe, cân bằng âm thanh và hiệu ứng dội lại.

Để xem mã mẫu cho hiệu ứng âm thanh, hãy xem AudioFxDemo.java trong ứng dụng mẫu ApiDemos.

Khung nội dung nghe nhìn cũng thêm:

  • Hỗ trợ mới cho thẻ độ cao trong siêu dữ liệu EXIF cho tệp JPEG. Phương thức mới getAltitude() phương thức đến truy xuất giá trị của thẻ độ cao EXIF.
  • Phương thức setOrientationHint() mới cho phép ứng dụng cho MediaRecorder biết hướng trong quá trình quay video.

Trình quản lý tải xuống

Nền tảng này bao gồm một dịch vụ hệ thống DownloadManager mới giúp xử lý các lượt tải xuống HTTP diễn ra trong thời gian dài. Các ứng dụng có thể yêu cầu tải một URI xuống một tệp đích cụ thể. DownloadManager sẽ tiến hành tải xuống trong nền, xử lý các tương tác HTTP và thử tải xuống lại sau khi không thành công hoặc qua các thay đổi về khả năng kết nối và hệ thống khởi động lại.

  • Các ứng dụng có thể lấy một thực thể của lớp DownloadManager bằng cách gọi getSystemService(String) và truyền DOWNLOAD_SERVICE. Các ứng dụng yêu cầu tải xuống thông qua API này phải đăng ký một broadcast receiver cho ACTION_NOTIFICATION_CLICKED để xử lý thích hợp khi người dùng nhấp vào một tệp tải xuống đang chạy trong thông báo hoặc từ giao diện người dùng Tải xuống.
  • Lớp DownloadManager.Request cho phép ứng dụng cung cấp tất cả thông tin cần thiết để yêu cầu tải xuống mới, chẳng hạn như URI yêu cầu và đích tải xuống. URI yêu cầu là yếu tố bắt buộc duy nhất . Xin lưu ý rằng đích tải xuống mặc định là một phương tiện dùng chung mà hệ thống có thể xoá tệp của bạn nếu cần lấy lại dung lượng để sử dụng hệ thống. Để lưu trữ liên tục của một tệp tải xuống, chỉ định một đích tải xuống trên bộ nhớ (xem setDestinationUri(Uri)).
  • Lớp DownloadManager.Query cung cấp các phương thức cho phép truy vấn ứng dụng và lọc các nội dung tải xuống đang hoạt động.

StrictMode

Để giúp nhà phát triển theo dõi và cải thiện hiệu suất của ứng dụng, nền tảng này cung cấp một cơ sở hệ thống mới có tên là StrictMode. Khi được triển khai trong một ứng dụng, StrictMode sẽ nắm bắt và thông báo cho nhà phát triển ổ đĩa hoặc hoạt động mạng vô tình có thể làm suy giảm ứng dụng hiệu suất, chẳng hạn như hoạt động diễn ra trên luồng chính của ứng dụng (nơi nhận các thao tác trên giao diện người dùng và cũng diễn ra ảnh động). Nhà phát triển có thể đánh giá các vấn đề về mức sử dụng mạng và ổ đĩa được nêu trong StrictMode và khắc phục các vấn đề đó nếu cần, giúp luồng chính phản hồi nhanh hơn và ngăn người dùng thấy hộp thoại ANR.

  • StrictMode là lớp cốt lõi và là điểm tích hợp chính với hệ thống và máy ảo. Lớp này cung cấp các phương thức thuận tiện để quản lý luồng và chính sách máy ảo áp dụng cho thực thể.
  • StrictMode.ThreadPolicyStrictMode.VmPolicy lưu giữ các chính sách mà bạn xác định và áp dụng cho luồng và thực thể máy ảo.

Để biết thêm thông tin về cách sử dụng StrictMode để tối ưu hoá ứng dụng, hãy xem tài liệu về lớp và mã mẫu tại android.os.StrictMode.

Khung giao diện người dùng

  • Hỗ trợ cuộn quá mức
    • Hỗ trợ mới cho tính năng cuộn xuống trong Khung hiển thị và Tiện ích. Trong Khung hiển thị, ứng dụng có thể bật/tắt tính năng cuộn quá mức cho một khung hiển thị cụ thể, đặt chế độ ghi đè, kiểm soát khoảng cách cuộn quá mức và xử lý kết quả của việc cuộn quá mức.
    • Trong tiện ích, các ứng dụng có thể kiểm soát các đặc điểm cuộn quá mức như ảnh động, hồi phục và khoảng cách cuộn quá mức. Để biết thêm thông tin, hãy xem android.view.Viewandroid.widget.OverScroller.
    • ViewConfiguration cũng cung cấp các phương thức getScaledOverflingDistance()getScaledOverscrollDistance().
    • overScrollMode, overScrollFooter mới và Thuộc tính overScrollHeader cho các phần tử <ListView>, để kiểm soát hành vi cuộn quá mức.
  • Hỗ trợ lọc thao tác chạm
    • Hỗ trợ mới cho tính năng lọc thao tác chạm, cho phép ứng dụng cải thiện tính bảo mật của Khung hiển thị cung cấp quyền truy cập vào chức năng nhạy cảm. Ví dụ: tính năng lọc thao tác chạm là phù hợp để đảm bảo tính bảo mật của các hành động của người dùng, chẳng hạn như cấp yêu cầu cấp quyền, mua hàng hoặc nhấp vào quảng cáo. Để biết thông tin chi tiết, hãy xem lớp Xem lớp .
    • Thuộc tính filterTouchesWhenObscured mới cho các phần tử thành phần hiển thị, khai báo việc có lọc thao tác chạm khi cửa sổ của thành phần hiển thị bị che khuất bởi một cửa sổ hiển thị khác hay không. Khi được đặt thành "true", thành phần hiển thị sẽ không nhận được thao tác chạm bất cứ khi nào một thông báo ngắn, hộp thoại hoặc cửa sổ khác xuất hiện phía trên cửa sổ của thành phần hiển thị. Tham khảo phần Xem khả năng bảo mật để biết thông tin chi tiết.

    Để xem mã mẫu về tính năng lọc thao tác chạm, hãy xem SecureView.java trong ứng dụng mẫu Apidemos.

  • Quản lý sự kiện được cải tiến
    • Lớp cơ sở mới cho các sự kiện đầu vào, InputEvent. Lớp cung cấp các phương thức cho phép ứng dụng xác định ý nghĩa của sự kiện, chẳng hạn như như bằng cách truy vấn InputDevice mà sự kiện đã khởi tạo. KeyEventMotionEvent là các lớp con của InputEvent.
    • Lớp cơ sở mới cho thiết bị đầu vào, InputDevice. Lớp này lưu trữ thông tin về các chức năng của một thiết bị đầu vào cụ thể và cung cấp các phương thức cho phép ứng dụng xác định cách diễn giải các sự kiện từ thiết bị đầu vào.
  • Sự kiện chuyển động được cải thiện
    • API MotionEvent được mở rộng để bao gồm thông tin "mã con trỏ", cho phép các ứng dụng theo dõi từng ngón tay khi chúng di chuyển lên và xuống. Lớp này thêm nhiều phương thức cho phép ứng dụng hoạt động hiệu quả với các sự kiện chuyển động.
    • Hệ thống đầu vào nay có logic để tạo các sự kiện chuyển động bằng thông tin ID con trỏ, tổng hợp các giá trị nhận dạng dưới dạng con trỏ mới bị gián đoạn. Chiến lược phát hành đĩa đơn hệ thống theo dõi riêng từng mã con trỏ trong một sự kiện chuyển động, và đảm bảo tính liên tục thích hợp của con trỏ bằng cách đánh giá ở khoảng cách giữa tập hợp con trỏ cuối cùng và tiếp theo.
  • Chế độ điều khiển lựa chọn văn bản
    • Phương thức setComposingRegion mới cho phép ứng dụng đánh dấu vùng văn bản dưới dạng soạn thảo văn bản, duy trì kiểu hiện tại. Phương thức getSelectedText trả về văn bản đã chọn cho ứng dụng. Các phương thức này có trong BaseInputConnection, InputConnectionInputConnectionWrapper.
    • textSelectHandle mới, textSelectHandleLeft, textSelectHandleRighttextSelectHandleWindowStyle cho <TextView>, để tham chiếu các đối tượng có thể vẽ sẽ dùng để hiển thị các neo lựa chọn văn bản và kiểu cho vùng chứa cửa sổ.
  • Kiểm soát hoạt động
  • Kiểu văn bản thông báo và biểu tượng
  • Màn hình cực lớn

    Nền tảng hiện hỗ trợ các kích thước màn hình cực lớn, chẳng hạn như các kích thước có thể tìm thấy trên thiết bị máy tính bảng. Nhà phát triển có thể cho biết rằng ứng dụng của họ được thiết kế để hỗ trợ kích thước màn hình cực lớn bằng cách thêm phần tử <supports screens ... android:xlargeScreens="true"> vào tệp kê khai. Các ứng dụng có thể sử dụng bộ hạn định tài nguyên mới, xlarge, để gắn thẻ các tài nguyên dành riêng cho màn hình cực lớn. Để biết thông tin chi tiết về cách hỗ trợ kích thước màn hình cực lớn và các kích thước màn hình khác, hãy xem phần Hỗ trợ nhiều màn hình.

    Đồ hoạ

    Trình cung cấp nội dung

    • Lớp trình cung cấp AlarmClock mới để đặt chuông báo hoặc xử lý chuông báo. Trình cung cấp chứa một Ý định ACTION_SET_ALARM hành động và tiện ích khác có thể được dùng để bắt đầu một Hoạt động nhằm đặt báo thức mới trong một ứng dụng đồng hồ báo thức. Ứng dụng muốn nhận Ý định SET_ALARM phải tạo một hoạt động yêu cầu quyền SET_ALARM. Các ứng dụng muốn tạo chuông báo mới nên sử dụng Context.startActivity() để người dùng có thể chọn ứng dụng đồng hồ báo thức nào để sử dụng.
    • MediaStore hỗ trợ một thao tác theo ý định (PLAY_FROM_SEARCH) mới, cho phép ứng dụng tìm kiếm nội dung nghe nhìn và tự động phát nội dung từ kết quả khi có thể. Ví dụ: một ứng dụng có thể kích hoạt Ý định này do lệnh nhận dạng giọng nói để nghe nhạc.
    • MediaStore cũng thêm một cờ MEDIA_IGNORE_FILENAME mới để thông báo cho nội dung đa phương tiện trình quét để bỏ qua nội dung đa phương tiện trong thư mục chứa và các thư mục con của thư mục đó. Nhà phát triển có thể sử dụng tính năng này để tránh việc đồ hoạ xuất hiện trong Thư viện và cũng ngăn âm thanh và nhạc của ứng dụng xuất hiện trong ứng dụng Nhạc.
    • Trình cung cấp Settings thêm các thao tác mới của Hoạt động APPLICATION_DETAILS_SETTINGSMANAGE_ALL_APPLICATIONS_SETTINGS, cho phép ứng dụng hiển thị thông tin chi tiết màn hình cho một ứng dụng cụ thể hoặc hiển thị màn hình Quản lý ứng dụng.
    • Nhà cung cấp ContactsContract sẽ thêm loại dữ liệu ContactsContract.CommonDataKinds.SipAddress, cho lưu trữ địa chỉ SIP (điện thoại Internet) của một địa chỉ liên hệ.

    Vị trí

    • LocationManager hiện theo dõi các yêu cầu của ứng dụng dẫn đến khoá chế độ thức hoặc khoá wifi theo WorkSource, một lớp do hệ thống quản lý giúp xác định ứng dụng.

      LocationManager theo dõi tất cả ứng dụng yêu cầu cập nhật định kỳ và thông báo cho các nhà cung cấp về các ứng dụng đó dưới dạng tham số WorkSource khi đặt thời gian cập nhật tối thiểu. Nhà cung cấp vị trí mạng sử dụng WorkSource để theo dõi các khoá chế độ thức và wifi do ứng dụng khởi tạo, đồng thời thêm khoá đó vào mức sử dụng pin của ứng dụng được báo cáo trong phần Quản lý ứng dụng.

    • LocationManager thêm một số phương thức mới cho phép một hoạt động đăng ký để nhận thông tin cập nhật vị trí định kỳ hoặc một lần dựa trên dựa trên các tiêu chí cụ thể (xem bên dưới).
    • Lớp Criteria mới cho phép ứng dụng chỉ định một nhóm tiêu chí để chọn nhà cung cấp vị trí. Ví dụ: nhà cung cấp có thể được sắp xếp theo độ chính xác, mức sử dụng năng lượng, khả năng báo cáo cao độ, tốc độ, cũng như chi phí tài chính.

    Bộ nhớ

    • Android 2.3 thêm một StorageManager mới hỗ trợ các tệp OBB (Opaque Binary Blob). Mặc dù hỗ trợ nền tảng cho OBB là có trong Android 2.3, các công cụ phát triển để tạo và quản lý tệp OBB sẽ không có sẵn cho đến đầu năm 2011.
    • Nền tảng Android 2.3 bổ sung tính năng hỗ trợ chính thức cho các thiết bị không có thẻ SD (mặc dù cung cấp phân vùng Thẻ SD ảo khi không có thẻ SD thực). Một phương thức tiện lợi, isExternalStorageRemovable(), cho phép các ứng dụng xác định xem có thẻ SD thực hay không.

    Trình quản lý gói

    • Hằng số mới để khai báo các tính năng phần cứng và phần mềm. Xem danh sách trong phần New Feature Constants (Hằng số tính năng mới) ở bên dưới.
    • PackageInfo thêm các trường firstInstallTimelastUpdateTime mới để lưu trữ thời gian của cài đặt gói và cập nhật lần cuối.
    • Phương thức getProviderInfo() mới để truy xuất tất cả thông tin đã biết một lớp trình cung cấp nội dung cụ thể.

    Điện thoại

    Quyền truy cập gốc vào Vòng đời hoạt động, cửa sổ

    Android 2.3 hiển thị một loạt API cho các ứng dụng sử dụng mã gốc . Các lớp khung được quan tâm cho các ứng dụng như vậy bao gồm:

    • NativeActivity là một loại lớp Hoạt động mới, trong đó các lệnh gọi lại vòng đời được triển khai trực tiếp trong mã gốc. Đáp NativeActivity và mã gốc cơ bản chạy trong hệ thống giống như các Hoạt động khác — đặc biệt là chúng chạy trong Android quy trình hệ thống của ứng dụng và thực thi trên luồng giao diện người dùng chính của ứng dụng, và chúng sẽ nhận được phương thức gọi lại trong vòng đời tương tự như các Hoạt động khác.
    • Lớp InputQueue và giao diện gọi lại mới cho phép mã gốc quản lý việc xếp hàng sự kiện.
    • Giao diện SurfaceHolder.Callback2 mới cho phép mã gốc quản lý SurfaceHolder.
    • Các phương thức takeInputQueuetakeSurface() mới trong Window cho phép mã gốc quản lý các sự kiện và nền tảng.

    Để biết toàn bộ thông tin về cách xử lý mã gốc hoặc tải NDK xuống, hãy xem trang Android NDK.

    Thời gian chạy Dalvik

    Phần tử và thuộc tính mới trong tệp kê khai

    • Thuộc tính xlargeScreens mới cho <supports-screens> để cho biết ứng dụng có hỗ trợ hay không cho màn hình lớn. Để biết thông tin chi tiết, hãy xem phần Hỗ trợ nhiều màn hình.
    • Giá trị mới cho thuộc tính android:screenOrientation của Phần tử <activity>:
      • "reverseLandscape" — Hoạt động muốn có màn hình theo hướng ngang, xoay theo hướng ngược lại so với bình thường ngang.
      • "reversePortrait" — Hoạt động muốn có màn hình theo hướng dọc, xoay theo hướng ngược lại so với thông thường dọc.
      • "sensorLandscape" – Hoạt động muốn có màn hình ở hướng ngang, nhưng có thể sử dụng cảm biến để thay đổi hướng màn hình.
      • "sensorPortrait" — Hoạt động muốn có màn hình theo hướng dọc nhưng có thể sử dụng cảm biến để thay đổi hướng màn hình đang hiển thị.
      • "fullSensor" – Hướng được xác định bằng cảm biến hướng vật lý: màn hình sẽ xoay theo cách người dùng di chuyển thiết bị. Chế độ này cho phép bất kỳ hướng xoay nào trong số 4 hướng có thể xoay, bất kể thiết bị thường làm gì (ví dụ: một số thiết bị thường không sử dụng chế độ xoay 180 độ).

    Quyền mới

    • com.android.permission.SET_ALARM – Cho phép ứng dụng truyền phát một Ý định để đặt chuông báo cho người dùng. Hoạt động xử lý thao tác theo ý định SET_ALARM sẽ yêu cầu quyền này.
    • android.permission.USE_SIP – Cho phép ứng dụng sử dụng SIP API để thực hiện hoặc nhận cuộc gọi qua Internet.
    • android.permission.NFC – Cho phép ứng dụng sử dụng NFC API để đọc thẻ NFC.

    Hằng số tính năng mới

    Nền tảng này bổ sung một số tính năng phần cứng mới mà nhà phát triển có thể khai báo trong tệp kê khai ứng dụng là bắt buộc đối với ứng dụng của họ. Điều này cho phép nhà phát triển kiểm soát cách ứng dụng của họ được lọc khi phát hành trên Google Play.

    Để biết toàn bộ thông tin về cách khai báo các tính năng và sử dụng chúng lọc, hãy xem tài liệu về <uses-feature>.

    Báo cáo sự khác biệt về API

    Để có cái nhìn chi tiết về tất cả thay đổi đối với API trong Android 2.3 (API Cấp 9), hãy xem API Báo cáo điểm khác biệt.

    Cấp độ API:

    Nền tảng Android 2.3 cung cấp phiên bản cập nhật của API khung. API Android 2.3 được gán một mã nhận dạng bằng số nguyên — 9 – tức là đượ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 2.3 trong ứng dụng của bạn, 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. Tuỳ thuộc vào nhu cầu, bạn cũng có thể cần thêm thuộc tính android:minSdkVersion="9" 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, thì việc khai báo thuộc tính này sẽ ngăn ứng dụng được cài đặt trên các phiên bản nền tảng trước đó.

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