Level API: 15
Android 4.0.3 (ICE_CREAM_SANDWICH_MR1
)
adalah rilis inkremental dari kelompok platform
Android 4.0 (ICE_CREAM_SANDWICH
). Rilis ini mencakup fitur baru bagi
pengguna dan developer, perubahan API, serta 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 Android dan image sistem, serta sekumpulan skin emulator dan banyak lagi. Untuk mulai mengembangkan atau menguji Android 4.0.3, gunakan Android SDK Manager untuk mendownload platform ke SDK Anda.
Ringkasan API
Bagian di bawah ini menyediakan ringkasan teknis tentang API baru di Android 4.0.3.
API aliran sosial di Penyedia Kontak
Aplikasi yang menggunakan data aliran sosial seperti update status dan check-in kini dapat menyinkronkan data tersebut dengan setiap kontak pengguna, yang menyediakan item dalam aliran beserta foto untuk setiap kontak.
Tabel database yang berisi aliran sosial masing-masing kontak ditentukan oleh android.provider.optout.StreamItems, Uri yang
bertingkat dalam direktori ContactsContract.RawContacts
tempat item aliran tersebut berada. Setiap tabel aliran sosial mencakup beberapa kolom untuk metadata tentang setiap item aliran data, seperti ikon yang mewakili sumber (avatar), label untuk item, konten teks utama, komentar tentang item (seperti tanggapan dari orang lain), dan banyak lagi. Foto yang terkait dengan aliran data disimpan dalam tabel lain, yang ditentukan oleh android.provider.optout.StreamItemPhotos, yang tersedia sebagai sub-direktori Uri android.provider.optout.StreamItems.
Lihat android.provider.optout.StreamItems dan android.provider.optout.StreamItemPhotos untuk mengetahui informasi selengkapnya.
Untuk membaca atau menulis item aliran 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 manifes mereka.
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 dirujuk oleh
COLOR_KEY
yang harus unik untuk nama/jenis akun tertentu. Nilai ini hanya dapat
diupdate oleh adaptor sinkronisasi.
- Menambahkan
ALLOWED_AVAILABILITY
dan
ALLOWED_ATTENDEE_TYPES
untuk dukungan bursa/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 dirujuk oleh
COLOR_KEY
yang harus unik untuk nama/jenis akun tertentu. Nilai ini hanya dapat
diupdate oleh adaptor sinkronisasi.ALLOWED_AVAILABILITY
dan
ALLOWED_ATTENDEE_TYPES
untuk dukungan bursa/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 lagi menyertakan
padding sendiri. Sebagai gantinya, sistem kini otomatis menambahkan padding untuk setiap widget,
berdasarkan karakteristik layar saat ini. Hal ini mengarah pada presentasi widget yang
lebih seragam dan konsisten dalam suatu {i>grid<i}. Untuk membantu aplikasi yang menghosting
widget layar utama, platform menyediakan metode baru
getDefaultPaddingForWidget()
. Aplikasi dapat memanggil metode ini untuk mendapatkan
padding yang ditentukan sistem dan memperhitungkannya saat menghitung jumlah sel yang akan
dialokasikan ke widget.
Periksa ejaan
- Untuk aplikasi yang mengakses layanan pemeriksa ejaan, metode
cancel()
baru akan membatalkan tugas pemeriksa ejaan yang tertunda dan sedang berjalan dalam suatu sesi. - Untuk layanan pemeriksa ejaan, tanda saran baru,
RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS
, memungkinkan layanan membedakan saran dengan tingkat keyakinan lebih tinggi dengan saran yang memiliki tingkat keyakinan lebih rendah. Misalnya, pemeriksa ejaan dapat menetapkan tanda jika kata input tidak ada dalam kamus pengguna tetapi kemungkinan memiliki saran, atau tidak menetapkan tanda jika kata input tidak ada dalam kamus dan memiliki saran yang mungkin kurang berguna.Aplikasi yang terhubung ke pemeriksa ejaan dapat menggunakan tanda
RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS
yang dikombinasikan dengan atribut saran lainnya, serta metodegetSuggestionsAttributes()
dangetSuggestionsCount()
, untuk menentukan apakah akan menandai kata input sebagai salah ketik dan menawarkan saran. - Gaya
FLAG_AUTO_CORRECTION
baru untuk span teks menunjukkan bahwa koreksi otomatis akan diterapkan pada kata/teks yang diketik/ditulis oleh pengguna. Jenis saran ini dirender secara berbeda, untuk menunjukkan sedang terjadi koreksi otomatis.
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 untuk menetapkan petunjuk apakah saat ini terlihat oleh pengguna atau tidak. Sistem
menunda dimulainya fragmen yang tidak terlihat oleh pengguna hingga loader
untuk fragmen yang terlihat telah berjalan. Petunjuk visibilitas ditetapkan ke "true" secara default.
Grafis
- Metode baru
setDefaultBufferSize(int, int)
diSurfaceTexture
menetapkan ukuran default buffering gambar. Metode ini dapat digunakan untuk menyetel ukuran gambar saat memproduksi gambar denganCanvas
(melaluilockCanvas(Rect)
), atau OpenGL ES (melalui EGLSurface). - Menambahkan definisi untuk enum ekstensi OpenGL ES GL_OES_EGL_image_external ES —
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
. - Jika 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.
Teks-ke-wicara
- Menambahkan metode baru
getFeatures()
untuk mengkueri 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. Objek ini juga dapat mengubah objekCursor
normal menjadi objekCrossProcessCursor
secara transparan.Class
CrossProcessCursorWrapper
memperbaiki masalah performa umum dan bug yang ditemukan aplikasi saat mengimplementasikan 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)
kini 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
agar aplikasi dapat mengakses informasi lokasi untuk gambar atau video.CamcorderProfile
menambahkan profil resolusi QVGA (320x240). Tingkat kualitas direpresentasikan 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: Memungkinkan adaptor sinkronisasi membaca dan menulis data aliran sosial ke kontak dalam Penyedia Kontak bersama.
Untuk melihat tampilan mendetail 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 "level API", 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 harus mengompilasi
aplikasi pada platform Android yang mendukung level API 15 atau
yang lebih tinggi. Bergantung pada kebutuhan, Anda mungkin juga perlu menambahkan
atribut android:minSdkVersion="15"
ke
elemen
<uses-sdk>
.
Untuk informasi selengkapnya, lihat dokumen API Level.