API Düzeyi: 15
Android 4.0.3 (ICE_CREAM_SANDWICH_MR1
), Android 4.0 (ICE_CREAM_SANDWICH
) platform ailesinin kademeli olarak sunulan 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'sı için indirilebilir bir bileşen olarak mevcuttur. İndirilebilir platformda bir Android kitaplığı ve sistem görüntüsünün yanı sıra bir dizi emülatör görünümü ve daha fazlası yer alır. Android 4.0.3'e göre uygulama geliştirmeye veya test etmeye başlamak için Android SDK Yöneticisi'ni kullanarak platformu SDK'nıza indirin.
API'ye Genel Bakış
Aşağıdaki bölümlerde Android 4.0.3'teki yeni API'lere teknik bir genel bakış sunulmaktadır.
Kişi Sağlayıcı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şileriyle senkronize ederek her biri için fotoğraflarla birlikte akıştaki öğeler sağlayabilir.
Tek bir kişinin sosyal akışını içeren veritabanı tablosu, akış öğelerinin ait olduğu ContactsContract.RawContacts
dizinine yerleştirilmiş URI'sı android.provider.ContactsContract.StreamItems tarafından tanımlanır. Her sosyal akış tablosu, kaynağı temsil eden bir simge (avatar), öğe için bir etiket, birincil metin içeriği, öğeyle ilgili yorumlar (diğer kullanıcıların yanıtları gibi) ve daha fazlası gibi her akış öğesiyle ilgili meta veriler için birkaç sütun içerir. Bir akışla ilişkili fotoğraflar, android.provider.ContactsContract.StreamItems Uri'nin bir alt dizini olarak bulunan android.provider.ContactsContract.StreamItemPhotos tarafından tanımlanan başka bir tabloda depolanır.
Daha fazla bilgi için android.provider.ContactsContract.StreamItems ve android.provider.ContactsContract.StreamItemPhotos adresine bakın.
Bir kişinin sosyal akış öğelerini okumak veya yazmak için uygulama, manifest dosyalarında <uses-permission
android:name="android.permission.READ_SOCIAL_STREAM">
ve/veya <uses-permission
android:name="android.permission.WRITE_SOCIAL_STREAM">
tanımlayarak kullanıcıdan izin istemelidir.
Takvim Sağlayıcısı
- CalendarProvider'da bir renk tablosunu temsil etmek için
CalendarContract.Colors
sınıfını ekler. Sınıfta, belirli bir hesapta kullanılabilen renklere erişim sağlayan alanlar sunulmaktadır. Renklere COLOR_KEY
tarafından başvuruda bulunulur. Bu renkler, belirli bir hesap adı/türü için benzersiz olmalıdır. Bu değerler yalnızca senkronizasyon adaptörü tarafından güncellenebilir.
- Exchange/senkronizasyon desteği için
ALLOWED_AVAILABILITY
ve ALLOWED_ATTENDEE_TYPES
ekler.
- Katılımcılar için
TYPE_RESOURCE
(konferans odaları gibi) ve AVAILABILITY_TENTATIVE
ile etkinlikler için EVENT_COLOR_KEY
ekler.
CalendarContract.Colors
sınıfını ekler. Sınıfta, belirli bir hesapta kullanılabilen renklere erişim sağlayan alanlar sunulmaktadır. Renklere COLOR_KEY
tarafından başvuruda bulunulur. Bu renkler, belirli bir hesap adı/türü için benzersiz olmalıdır. Bu değerler yalnızca senkronizasyon adaptörü tarafından güncellenebilir.ALLOWED_AVAILABILITY
ve ALLOWED_ATTENDEE_TYPES
ekler.TYPE_RESOURCE
(konferans odaları gibi) ve AVAILABILITY_TENTATIVE
ile etkinlikler için EVENT_COLOR_KEY
ekler.Ana ekran widget'ları
Android 4.0'dan itibaren ana ekran widget'ları artık kendi dolgularını içermemelidir. Bunun yerine, sistem artık mevcut ekranın özelliklerine dayalı olarak her widget için otomatik olarak dolgu ekliyor. Bu, widget'ların bir ızgarada daha tutarlı,
tutarlı bir şekilde sunulmasını sağlar. Platform, ana ekran widget'ları barındıran uygulamalara yardımcı olmak için yeni bir yöntem (getDefaultPaddingForWidget()
) sunuyor. Uygulamalar bu yöntemi kullanarak sistem tanımlı dolguyu elde edebilir ve widget'a ayrılacak hücre sayısını hesaplarken bunu hesaba katabilir.
Yazım denetimi
- Yeni bir
cancel()
yöntemi, yazım denetleyici hizmetlerine erişen uygulamalar için bir oturumda beklemede olan ve çalışan tüm yazım denetleyici görevlerini iptal eder. - Yazım denetleyici hizmetleri için yeni bir öneri işareti (
RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS
), hizmetlerin yüksek güven düzeyine sahip önerileri düşük güven düzeyine sahip önerilerden ayırt etmesine olanak tanır. Örneğin, bir yazım denetleyicisi, bir giriş kelimesi kullanıcı sözlüğünde yoksa ancak muhtemel önerileri varsa işareti ayarlayabilir ya da bir giriş kelimesi sözlükte yoksa ve daha az yararlı olabilecek öneriler içeriyorsa işareti ayarlayabilir.Yazım denetleyiciye bağlı uygulamalar, giriş kelimelerinin yazım hatası olarak işaretlenip işaretlenmeyeceğini ve öneriler sunulup sunulmayacağını belirlemek için
RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS
işaretini diğer öneri özellikleriyle vegetSuggestionsAttributes()
ilegetSuggestionsCount()
yöntemleriyle birlikte kullanabilir. - Metin aralıkları için yeni bir
FLAG_AUTO_CORRECTION
stili, otomatik düzeltmenin kullanıcının yazmakta olduğu/oluşturduğu bir kelimeye/metne uygulanmak üzere olduğunu gösterir. Bu tür öneriler, otomatik düzeltmenin yapıldığını göstermek için farklı bir şekilde oluşturulur.
Bluetooth
Yeni herkese açık yöntemler olan fetchUuidsWithSdp()
ve getUuids()
, uygulamaların uzak bir 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, ardından sonucu ACTION_UUID
amacıyla yayınlar.
Kullanıcı arayüzü araç seti
Yeni setUserVisibleHint()
ve getUserVisibleHint()
yöntemleri, bir parçanın o anda kullanıcı tarafından görünür olup olmadığına dair ipucu ayarlamasına olanak tanır. Sistem, görünür parçalar için yükleyiciler çalıştırılana kadar kullanıcı tarafından görülebilir olmayan parçaların başlangıcını erteler. Görünürlük ipucu, varsayılan olarak "doğru"dur.
Görseller
SurfaceTexture
öğesindekisetDefaultBufferSize(int, int)
adlı yeni yöntem, resim arabelleklerinin varsayılan boyutunu belirliyor. Bu yöntem,Canvas
ile (lockCanvas(Rect)
aracılığıyla) veya OpenGL ES (EGLSurface aracılığıyla) ile resimler oluştururken 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 büyütülmüş 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 alıp ayarlamasına olanak tanır.- Dokunma keşfi modu etkinleştirildiğinde yeni bir güvenli ayar,
ACCESSIBILITY_SPEAK_PASSWORD
kullanıcının kulaklık kullanılmadığında bile şifre alanlarına girilen metni IME'nin okumasını isteyip istemediğini belirtir. Mikrofonlu kulaklık kullanılmıyorsa varsayılan olarak şifre metni söylenmez.
Metin-konuşma
- Ağ TTS desteğini sorgulamak ve etkinleştirmek için
getFeatures()
yeni yöntemi ekler. - Motorların, konuşma sentezi hatalarının bildirimini almak için kaydedebileceği yeni bir işleyici sınıfı (
UtteranceProgressListener
) ekler.
Veritabanı
- Yeni bir
CrossProcessCursorWrapper
sınıfı, içerik sağlayıcıların çapraz işlemler sorgusu için sonuçları daha verimli bir şekilde döndürmesine olanak tanır. Bu yeni sınıf, uzaktan işlemlere gönderilecek imleçleri sarmalamak için kullanışlı bir yapı taşı. Ayrıca normalCursor
nesnelerini şeffaf bir şekildeCrossProcessCursor
nesnelerine 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)
oluşturucu artık giriş olarak bir ad dizesi alır. Sistem artık yerel ve uzak imleç pencereleri arasında ayrım yapmadığındanCursorWindow(boolean)
kullanımdan kaldırılmıştır.
Etkinlikler
Cihazda yaygın olarak kullanılan CATEGORY_APP_BROWSER
, CATEGORY_APP_CALENDAR
, CATEGORY_APP_MAPS
gibi uygulama türlerini hedeflemek için yeni kategoriler ekler.
Kamera
MediaMetadataRetriever
, uygulamaların bir resim veya videonun konum bilgilerini almasına olanak tanımak için yeni sabit değeriMETADATA_KEY_LOCATION
ekler.CamcorderProfile
, QVGA (320x240) çözünürlük profillerini ekler. Kalite seviyesi,QUALITY_QVGA
veQUALITY_TIME_LAPSE_QVGA
sabitleriyle temsil edilir.setVideoStabilization()
,getVideoStabilization()
veisVideoStabilizationSupported()
adlı yeni yöntemler,Camera
için video sabitlemeyi kontrol edip yönetmenize olanak tanır.
İzinler
Yeni izinler şunlardır:
- android.Manifest.permission#READ_SOCIAL_STREAM ve android.Manifest.permission#WRITE_SOCIAL_STREAM: Bir senkronizasyon bağdaştırıcısının, paylaşılan Kişi Sağlayıcı'daki bir kişiye sosyal akış verilerini okumasına ve bu kişiye yazmasına izin verin.
Android 4.0.3'teki (API Düzeyi 15) tüm API değişikliklerinin ayrıntılı görünümü için API Farklılıkları Raporu'na bakın.
API Düzeyi
Android 4.0.3 API'ye, sistemin kendisinde 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.
Uygulamanızda Android 4.0.3'te sunulan API'leri kullanmak için uygulamayı API düzeyi 15 veya üstünü destekleyen bir Android platformuna göre derlemeniz gerekir. İhtiyaçlarınıza bağlı olarak <uses-sdk>
öğesine bir android:minSdkVersion="15"
özelliği de eklemeniz gerekebilir.
Daha fazla bilgi için API Düzeyleri belgesine bakın.