API Düzeyi: 15
Android 4.0.3 (ICE_CREAM_SANDWICH_MR1
), Android 4.0 (ICE_CREAM_SANDWICH
) platform ailesinin artımlı bir sürümüdür. Bu sürüm, kullanıcılar ve geliştiriciler için yeni özellikler, API değişiklikleri ve çeşitli hata düzeltmeleri içerir.
Android 4.0.3 platformu, geliştiriciler için Android SDK'nın indirilebilir bir bileşeni olarak kullanılabilir. İndirilebilir platformda Android kitaplığı ve sistem resminin yanı sıra bir dizi emülatör kaplaması ve daha fazlası yer alır. Android 4.0.3 için geliştirmeye veya test etmeye başlamak istiyorsanız platformu SDK'nıza indirmek için Android SDK Yöneticisi'ni kullanın.
API'ye Genel Bakış
Aşağıdaki bölümlerde, Android 4.0.3'teki yeni API'lere teknik bir genel bakış sunulmaktadır.
Contacts Provider'da Social Stream API
Durum güncellemeleri ve check-in'ler gibi sosyal akış verilerini kullanan uygulamalar artık bu verileri kullanıcının kişilerinin her biri ile senkronize edebilir. Böylece, her bir kişinin fotoğraflarıyla birlikte akışta öğeler gösterilebilir.
Bir kişinin sosyal medya akışını içeren veritabanı tablosu, android.provider.ContactsContract.StreamItems tarafından tanımlanır. Bu tablonun Uri'si, akış öğelerinin ait olduğu ContactsContract.RawContacts
dizinine yerleştirilir. Her sosyal medya akışı tablosu, her akış öğesiyle ilgili meta veriler için çeşitli sütunlar içerir. Örneğin, kaynağı temsil eden bir simge (avatar), öğe için bir etiket, birincil metin içeriği, öğeyle ilgili yorumlar (ör. diğer kullanıcıların yanıtları) ve daha fazlası. Bir akışla ilişkili fotoğraflar, android.provider.ContactsContract.StreamItemPhotos tarafından tanımlanan başka bir tabloda depolanır. Bu tablo, android.provider.ContactsContract.StreamItems Uri'sinin alt dizini olarak kullanılabilir.
Daha fazla bilgi için android.provider.ContactsContract.StreamItems ve android.provider.ContactsContract.StreamItemPhotos öğelerine bakın.
Bir uygulamanın, bir kişiyle ilgili sosyal medya akışı öğelerini okuması veya yazması için manifest dosyalarında <uses-permission
android:name="android.permission.READ_SOCIAL_STREAM">
ve/veya <uses-permission
android:name="android.permission.WRITE_SOCIAL_STREAM">
bildirerek kullanıcıdan izin alması gerekir.
Takvim Sağlayıcı
- Takvim Sağlayıcı'da bir renk tablosunu temsil etmek için
CalendarContract.Colors
sınıfını ekler. Sınıf, belirli bir hesapta kullanılabilen renklere erişmek için alanlar sağlar. Renklere COLOR_KEY
ile referans verilir. Bu değer, belirli bir hesap adı/türü için benzersiz olmalıdır. Bu değerler yalnızca senkronizasyon bağdaştırıcısı tarafından güncellenebilir.
- Değişim/senkronizasyon desteği için
ALLOWED_AVAILABILITY
ve ALLOWED_ATTENDEE_TYPES
eklenir.
- Katılımcılar için
TYPE_RESOURCE
(ör. konferans salonları) ve AVAILABILITY_TENTATIVE
, etkinlikler için de EVENT_COLOR_KEY
ekler.
CalendarContract.Colors
sınıfını ekler. Sınıf, belirli bir hesapta kullanılabilen renklere erişmek için alanlar sağlar. Renklere COLOR_KEY
ile referans verilir. Bu değer, belirli bir hesap adı/türü için benzersiz olmalıdır. Bu değerler yalnızca senkronizasyon bağdaştırıcısı tarafından güncellenebilir.ALLOWED_AVAILABILITY
ve ALLOWED_ATTENDEE_TYPES
eklenir.TYPE_RESOURCE
(ör. konferans salonları) ve AVAILABILITY_TENTATIVE
, etkinlikler için de EVENT_COLOR_KEY
ekler.Ana ekran widget'ları
Android 4.0'tan itibaren ana ekran widget'ları artık kendi dolgularını içermemelidir. Bunun yerine sistem artık mevcut ekranın özelliklerine göre her widget için otomatik olarak dolgu ekler. Bu sayede, widget'lar ızgara şeklinde daha düzenli ve tutarlı bir şekilde sunulur. Platform, ana ekran widget'ları barındıran uygulamalara yardımcı olmak için yeni bir yöntem getDefaultPaddingForWidget()
sağlar. Uygulamalar, sistem tarafından tanımlanan dolguyu almak ve widget'a ayrılacak hücre sayısını hesaplarken bunu hesaba katmak için bu yöntemi çağırabilir.
Yazım denetimi
- Yazım denetimi hizmetlerine erişen uygulamalar için yeni bir
cancel()
yöntemi, oturumda bekleyen ve çalışan tüm yazım denetimi görevlerini iptal eder. - Yazım denetimi hizmetleri için yeni bir öneri işareti (
RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS
) eklendi. Bu işaret, hizmetlerin daha yüksek güven puanına sahip önerileri daha düşük güven puanına sahip önerilerden ayırt etmesini sağlar. Örneğin, bir yazım denetimi aracı, giriş kelimesi kullanıcı sözlüğünde yoksa ancak olası önerileri varsa işareti ayarlayabilir veya giriş kelimesi sözlükte yoksa ve önerileri muhtemelen daha az yararlıysa işareti ayarlamayabilir.Yazım denetimine bağlı uygulamalar, giriş kelimelerinin yazım hatası olarak işaretlenip işaretlenmeyeceğini belirlemek ve öneri sunmak için
RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS
işaretini diğer öneri özellikleriyle birliktegetSuggestionsAttributes()
vegetSuggestionsCount()
yöntemleriyle kullanabilir. - Metin aralıkları için yeni
FLAG_AUTO_CORRECTION
stili, kullanıcının yazdığı/oluşturduğu bir kelimeye/metne otomatik düzeltmenin uygulanmak üzere olduğunu gösterir. Bu tür öneriler, otomatik düzeltmenin yapıldığını belirtmek için farklı şekilde oluşturulur.
Bluetooth
Yeni herkese açık yöntemler fetchUuidsWithSdp()
ve getUuids()
, uygulamaların uzak cihaz tarafından desteklenen özellikleri (UUID'ler) belirlemesine olanak tanır. fetchUuidsWithSdp()
durumunda sistem, desteklenen UUID'leri almak için uzak cihazda bir hizmet keşfi gerçekleştirir ve ardından sonucu bir ACTION_UUID
intent'inde yayınlar.
Kullanıcı arayüzü araç seti
Yeni setUserVisibleHint()
ve getUserVisibleHint()
yöntemleri, bir parçanın şu anda kullanıcı tarafından görünür olup olmadığına dair bir ipucu belirlemesine olanak tanır. Sistem, kullanıcı tarafından görülemeyen parçaların başlatılmasını, görünür parçaların yükleyicileri çalıştırılana kadar erteler. Görünürlük ipucu varsayılan olarak "true" (doğru) değerine sahiptir.
Grafik
SurfaceTexture
içindeki yenisetDefaultBufferSize(int, int)
yöntemi, resim arabelleklerinin varsayılan boyutunu belirler. Bu yöntem,Canvas
(lockCanvas(Rect)
aracılığıyla) veya OpenGL ES (EGLSurface aracılığıyla) ile resim üretirken resim boyutunu ayarlamak için kullanılabilir.- GL_OES_EGL_image_external OpenGL ES uzantısının enum'ları için tanımlar ekler:
GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES
,GL_SAMPLER_EXTERNAL_OES
,GL_TEXTURE_BINDING_EXTERNAL_OES
veGL_TEXTURE_EXTERNAL_OES
.
Erişilebilirlik
RemoteViews
istemcileri artık şişirilmiş düzendeki herhangi bir Görünümün içerik açıklamasını ayarlamak ve almak içinsetContentDescription()
yöntemini kullanabilir.getMaxScrollX()
,getMaxScrollY()
,setMaxScrollX()
vesetMaxScrollY()
yöntemleri, uygulamaların birAccessibilityRecord
nesnesi için maksimum kaydırma ofsetini almasına ve ayarlamasına olanak tanır.- Dokunmatik keşif modu etkinleştirildiğinde yeni bir güvenli ayar
ACCESSIBILITY_SPEAK_PASSWORD
, kullanıcının kulaklık kullanılmadığında bile IME'den şifre alanlarına girilen metni okumasını isteyip istemediğini gösterir. Kulaklık kullanılmadığı sürece varsayılan olarak şifre metni okunmaz.
Metin-konuşma
- Ağ TTS desteğini sorgulamak ve etkinleştirmek için yeni
getFeatures()
yöntemini ekler. - Motorların konuşma sentezi hatalarıyla ilgili bildirim almak için kaydedebileceği yeni bir dinleyici sınıfı
UtteranceProgressListener
ekler.
Veritabanı
- Yeni
CrossProcessCursorWrapper
sınıfı, içerik sağlayıcıların işlemler arası bir sorgu için sonuçları daha verimli bir şekilde döndürmesine olanak tanır. Yeni sınıf, uzaktan işlemlere gönderilecek imleçleri sarmalamak için faydalı bir yapı taşıdır. Ayrıca normalCursor
nesneleriniCrossProcessCursor
nesnelerine şeffaf bir şekilde dönüştürebilir.CrossProcessCursorWrapper
sınıfı, uygulamaların içerik sağlayıcıları uygularken karşılaştığı yaygın performans sorunlarını ve hataları düzeltir. CursorWindow(java.lang.String)
yapıcısı artık giriş olarak bir ad dizesi alıyor. Sistem artık yerel ve uzak işaretçi pencereleri arasında ayrım yapmıyor. Bu nedenleCursorWindow(boolean)
desteği sonlandırıldı.
Amaçlar
Cihazdaki yaygın uygulama türlerini (ör. CATEGORY_APP_BROWSER
, CATEGORY_APP_CALENDAR
, CATEGORY_APP_MAPS
) hedeflemek için yeni kategoriler ekler.
Kamera
MediaMetadataRetriever
, uygulamaların bir resim veya videonun konum bilgilerine erişmesine izin vermek için yeni sabitMETADATA_KEY_LOCATION
değerini ekler.CamcorderProfile
, QVGA (320x240) çözünürlük profillerini ekler. Kalite seviyesi,QUALITY_QVGA
.andQUALITY_TIME_LAPSE_QVGA
sabitleriyle temsil edilir.setVideoStabilization()
,getVideoStabilization()
veisVideoStabilizationSupported()
adlı yeni yöntemler,Camera
için video sabitlemeyi kontrol etmenize ve yönetmenize olanak tanır.
İzinler
Aşağıdakiler yeni izinlerdir:
- android.Manifest.permission#READ_SOCIAL_STREAM ve android.Manifest.permission#WRITE_SOCIAL_STREAM: Bir senkronizasyon bağdaştırıcının, paylaşılan Kişiler Sağlayıcı'daki bir kişiye sosyal akış verilerini okumasına ve yazmasına izin verin.
Android 4.0.3'teki (API Seviyesi 15) tüm API değişikliklerinin ayrıntılı görünümü için API Farklılık Raporu'na bakın.
API düzeyi
Android 4.0.3 API'ye, sistemde depolanan bir tam sayı tanımlayıcı (15) atanır. "API düzeyi" olarak adlandırılan bu tanımlayıcı, sistemin uygulamayı yüklemeden önce uygulamanın sistemle uyumlu olup olmadığını doğru şekilde belirlemesine olanak tanır.
Android 4.0.3'te kullanıma sunulan API'leri uygulamanızda kullanmak için uygulamayı API düzeyi 15 veya daha yüksek sürümleri destekleyen bir Android platformu için derlemeniz gerekir. İhtiyaçlarınıza bağlı olarak <uses-sdk>
öğesine bir android:minSdkVersion="15"
özelliği eklemeniz de gerekebilir.
Daha fazla bilgi için API Seviyeleri belgesine bakın.