API Level: 15
Android 4.0.3 (ICE_CREAM_SANDWICH_MR1
)
adalah rilis inkremental dari keluarga platform
Android 4.0 (ICE_CREAM_SANDWICH
). Rilis ini mencakup fitur baru untuk
pengguna dan developer, perubahan API, dan berbagai perbaikan bug.
Untuk developer, platform Android 4.0.3 tersedia sebagai komponen yang dapat didownload untuk Android SDK. Platform yang dapat didownload mencakup library dan image sistem Android, serta serangkaian skin emulator dan lainnya. Untuk mulai mengembangkan atau menguji terhadap Android 4.0.3, gunakan Android SDK Manager untuk mendownload platform ke SDK Anda.
Ringkasan API
Bagian di bawah memberikan ringkasan teknis tentang API baru di Android 4.0.3.
Social stream API di Penyedia Kontak
Aplikasi yang menggunakan data feed sosial seperti pembaruan status dan check-in kini dapat menyinkronkan data tersebut dengan setiap kontak pengguna, yang menyediakan item dalam feed beserta foto untuk setiap kontak.
Tabel database yang berisi feed media sosial setiap kontak ditentukan oleh android.provider.ContactsContract.StreamItems, yang Uri-nya disusun bertingkat dalam direktori ContactsContract.RawContacts
tempat item feed berada. Setiap tabel feed sosial menyertakan
beberapa kolom untuk metadata tentang setiap item feed, seperti ikon
yang mewakili sumber (avatar), label untuk item, konten teks
utama, komentar tentang item (seperti respons dari orang lain), dan
lainnya. Foto yang terkait dengan streaming disimpan dalam tabel lain, yang ditentukan oleh
android.provider.ContactsContract.StreamItemPhotos, yang tersedia
sebagai subdirektori dari Uri
android.provider.ContactsContract.StreamItems.
Lihat android.provider.ContactsContract.StreamItems dan android.provider.ContactsContract.StreamItemPhotos untuk mengetahui informasi selengkapnya.
Untuk membaca atau menulis item feed sosial untuk kontak, aplikasi harus
meminta izin dari pengguna dengan mendeklarasikan <uses-permission
android:name="android.permission.READ_SOCIAL_STREAM">
dan/atau <uses-permission
android:name="android.permission.WRITE_SOCIAL_STREAM">
dalam file manifesnya.
Penyedia Kalender
- Menambahkan class
CalendarContract.Colors
untuk mewakili
tabel warna di Penyedia
Kalender. Class ini menyediakan kolom untuk mengakses
warna yang tersedia untuk akun tertentu. Warna direferensikan oleh
COLOR_KEY
yang harus unik untuk nama/jenis akun tertentu. Nilai ini hanya dapat
diperbarui oleh adaptor sinkronisasi.
- Menambahkan
ALLOWED_AVAILABILITY
dan
ALLOWED_ATTENDEE_TYPES
untuk dukungan pertukaran/sinkronisasi.
- Menambahkan
TYPE_RESOURCE
(seperti ruang konferensi) untuk tamu dan
AVAILABILITY_TENTATIVE
,
serta EVENT_COLOR_KEY
untuk acara.
CalendarContract.Colors
untuk mewakili
tabel warna di Penyedia
Kalender. Class ini menyediakan kolom untuk mengakses
warna yang tersedia untuk akun tertentu. Warna direferensikan oleh
COLOR_KEY
yang harus unik untuk nama/jenis akun tertentu. Nilai ini hanya dapat
diperbarui oleh adaptor sinkronisasi.ALLOWED_AVAILABILITY
dan
ALLOWED_ATTENDEE_TYPES
untuk dukungan pertukaran/sinkronisasi.TYPE_RESOURCE
(seperti ruang konferensi) untuk tamu dan
AVAILABILITY_TENTATIVE
,
serta EVENT_COLOR_KEY
untuk acara.Widget layar utama
Mulai Android 4.0, widget layar utama tidak boleh lagi menyertakan paddingnya sendiri. Sebagai gantinya, sistem kini otomatis menambahkan padding untuk setiap widget,
berdasarkan karakteristik layar yang sedang aktif. Hal ini akan menciptakan penyajian widget yang lebih seragam
dan konsisten dalam formasi petak. Untuk membantu aplikasi yang menghosting
widget layar utama, platform menyediakan metode
getDefaultPaddingForWidget()
baru. Aplikasi dapat memanggil metode ini untuk mendapatkan padding yang ditentukan oleh sistem dan memperhitungkannya saat menghitung jumlah sel yang akan dialokasikan ke widget.
Memeriksa ejaan
- Untuk aplikasi yang mengakses layanan pemeriksa ejaan, metode
cancel()
baru akan membatalkan tugas pemeriksa ejaan yang tertunda dan berjalan dalam sesi. - Untuk layanan pemeriksa ejaan, flag saran baru,
RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS
, memungkinkan layanan membedakan saran dengan tingkat keyakinan lebih tinggi dari saran dengan tingkat keyakinan lebih rendah. Misalnya, pemeriksa ejaan dapat menetapkan tanda jika kata input tidak ada dalam kamus pengguna, tetapi memiliki saran yang mungkin, atau tidak menetapkan tanda jika kata input tidak ada dalam kamus dan memiliki saran yang kemungkinan kurang berguna.Aplikasi yang terhubung ke pemeriksa ejaan dapat menggunakan tanda
RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS
bersama dengan atribut saran lainnya, serta metodegetSuggestionsAttributes()
dangetSuggestionsCount()
, untuk menentukan apakah akan menandai kata input sebagai kesalahan ketik dan menawarkan saran. - Gaya
FLAG_AUTO_CORRECTION
baru untuk span teks menunjukkan bahwa koreksi otomatis akan diterapkan ke kata/teks yang diketik/dibuat oleh pengguna. Jenis saran ini dirender secara berbeda, untuk menunjukkan bahwa koreksi otomatis sedang terjadi.
Bluetooth
Metode publik baru fetchUuidsWithSdp()
dan getUuids()
memungkinkan aplikasi menentukan fitur
(UUID) yang didukung oleh perangkat jarak jauh. Dalam kasus fetchUuidsWithSdp()
, sistem melakukan
penemuan layanan di perangkat jarak jauh untuk mendapatkan UUID yang didukung, lalu
menyiarkan hasilnya dalam intent ACTION_UUID
.
Toolkit UI
Metode baru setUserVisibleHint()
dan
getUserVisibleHint()
memungkinkan
fragmen menetapkan petunjuk apakah fragmen saat ini terlihat oleh pengguna atau tidak. Sistem
menunda awal fragmen yang tidak terlihat oleh pengguna hingga loader
untuk fragmen yang terlihat telah berjalan. Petunjuk visibilitas adalah "true" secara default.
Grafik
- Metode baru
setDefaultBufferSize(int, int)
diSurfaceTexture
menetapkan ukuran default buffering gambar. Metode ini dapat digunakan untuk menetapkan ukuran gambar saat menghasilkan gambar denganCanvas
(melaluilockCanvas(Rect)
), atau OpenGL ES (melalui EGLSurface). - Menambahkan definisi untuk enum ekstensi OpenGL ES GL_OES_EGL_image_external —
GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES
,GL_SAMPLER_EXTERNAL_OES
,GL_TEXTURE_BINDING_EXTERNAL_OES
, danGL_TEXTURE_EXTERNAL_OES
.
Aksesibilitas
- Klien
RemoteViews
kini dapat menggunakan metodesetContentDescription()
untuk menetapkan dan mendapatkan deskripsi konten View apa pun dalam tata letak yang di-inflate. - Metode
getMaxScrollX()
,getMaxScrollY()
,setMaxScrollX()
, dansetMaxScrollY()
memungkinkan aplikasi mendapatkan dan menetapkan offset scroll maksimum untuk objekAccessibilityRecord
. - Saat mode eksplorasi sentuh diaktifkan, setelan aman baru
ACCESSIBILITY_SPEAK_PASSWORD
menunjukkan apakah pengguna meminta IME untuk mengucapkan teks yang dimasukkan di kolom sandi, meskipun headset tidak digunakan. Secara default, tidak ada teks sandi yang diucapkan kecuali jika headset sedang digunakan.
Text-to-speech
- Menambahkan metode baru
getFeatures()
untuk membuat kueri dan mengaktifkan dukungan TTS jaringan. - Menambahkan class pemroses baru,
UtteranceProgressListener
, yang dapat didaftarkan mesin untuk menerima notifikasi error sintesis ucapan.
Database
- Class
CrossProcessCursorWrapper
baru memungkinkan penyedia konten menampilkan hasil untuk kueri lintas proses secara lebih efisien. Class baru adalah elemen penyusun yang berguna untuk menggabungkan kursor yang akan dikirim ke proses dari jarak jauh. Kode ini juga dapat mengubah objekCursor
normal menjadi objekCrossProcessCursor
secara transparan.Class
CrossProcessCursorWrapper
memperbaiki masalah performa dan bug umum yang dialami aplikasi saat menerapkan penyedia konten. - Konstruktor
CursorWindow(java.lang.String)
kini menggunakan string nama sebagai input. Sistem tidak lagi membedakan antara jendela kursor lokal dan jarak jauh, sehinggaCursorWindow(boolean)
sekarang tidak digunakan lagi.
Intent
Menambahkan kategori baru untuk menargetkan jenis aplikasi umum di
perangkat, seperti CATEGORY_APP_BROWSER
, CATEGORY_APP_CALENDAR
, CATEGORY_APP_MAPS
, dan lainnya.
Kamera
MediaMetadataRetriever
menambahkan konstanta baruMETADATA_KEY_LOCATION
untuk memungkinkan aplikasi mengakses informasi lokasi pengambilan untuk gambar atau video.CamcorderProfile
menambahkan profil resolusi QVGA (320x240). Tingkat kualitas diwakili oleh konstantaQUALITY_QVGA
.danQUALITY_TIME_LAPSE_QVGA
.- Metode baru
setVideoStabilization()
,getVideoStabilization()
, danisVideoStabilizationSupported()
memungkinkan Anda memeriksa dan mengelola stabilisasi video untukCamera
.
Izin
Berikut adalah izin baru:
- android.Manifest.permission#READ_SOCIAL_STREAM dan android.Manifest.permission#WRITE_SOCIAL_STREAM: Mengizinkan adaptor sinkronisasi membaca dan menulis data aliran sosial ke kontak di Penyedia Kontak bersama.
Untuk melihat tampilan mendetail tentang semua perubahan API di Android 4.0.3 (API Level 15), lihat Laporan Perbedaan API.
API Level
Android 4.0.3 API diberi ID bilangan bulat —15—yang disimpan dalam sistem itu sendiri. ID ini, yang disebut "API level", memungkinkan sistem menentukan dengan benar apakah aplikasi kompatibel dengan sistem, sebelum menginstal aplikasi.
Untuk menggunakan API yang diperkenalkan di Android 4.0.3 dalam aplikasi, Anda perlu mengompilasi
aplikasi terhadap platform Android yang mendukung API level 15 atau
yang lebih tinggi. Bergantung pada kebutuhan Anda, Anda mungkin juga perlu menambahkan
atribut android:minSdkVersion="15"
ke elemen
<uses-sdk>
.
Untuk informasi selengkapnya, lihat dokumen API Level.