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 açısından 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 sürümünü 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'lara ilişkin 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 akıştaki öğeler ve her biri için fotoğraflar sağlayabilir.
Tek bir kişinin sosyal akışını içeren veritabanı tablosu, akış öğelerinin ait olduğu ContactsContract.RawContacts
dizininin içine yerleştirilmiş URI'sı olan android.provider.ContactsContract.StreamItems öğesi 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 bir 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 alt dizini olarak bulunan ve 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 sayfalarına göz atın.
Bir kişinin sosyal akış öğelerini okumak veya yazmak için uygulamanın, 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 istemesi gerekir.
Takvim Sağlayıcısı
- Takvim Sağlayıcı'da bir renk tablosunu temsil etmek için
CalendarContract.Colors
sınıfını ekler. Bu sınıf, belirli bir hesapta kullanılabilen renklere erişimle ilgili alanlar sağlar. Renklere COLOR_KEY
tarafından referansta bulunuluyor. Bu renk, 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.
- Exchange/senkronizasyon desteği için
ALLOWED_AVAILABILITY
ve ALLOWED_ATTENDEE_TYPES
ekler.
- Katılımcılar için
TYPE_RESOURCE
(konferans odaları gibi), AVAILABILITY_TENTATIVE
ve etkinlikler için EVENT_COLOR_KEY
ekler.
CalendarContract.Colors
sınıfını ekler. Bu sınıf, belirli bir hesapta kullanılabilen renklere erişimle ilgili alanlar sağlar. Renklere COLOR_KEY
tarafından referansta bulunuluyor. Bu renk, 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
ekler.TYPE_RESOURCE
(konferans odaları gibi), AVAILABILITY_TENTATIVE
ve etkinlikler için EVENT_COLOR_KEY
ekler.Ana ekran widget'ları
Android 4.0'dan itibaren ana ekran widget'larının kendi dolgularını içermemesi gerekir. Bunun yerine, sistem artık geçerli ekranın özelliklerine göre her widget için otomatik olarak dolgu ekliyor. Bu, widget'ların bir ızgarada daha tek tip,
tutarlı bir şekilde sunulmasını sağlar. Ana ekran widget'ları barındıran uygulamalara yardımcı olmak için platform, yeni bir getDefaultPaddingForWidget()
yöntemi sunuyor. Uygulamalar, sistem tanımlı 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 denetleyici hizmetlerine erişen uygulamalar için yeni
cancel()
yöntemi, bir oturumda beklemede olan ve çalıştırılmakta olan 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, yazım denetleyicisi, kullanıcı sözlüğünde olmayan ancak olası önerileri olan bir giriş sözcüğünü işaretleyebilir ya da girilen bir kelime sözlükte yoksa ve daha az yararlı olabilecek önerileri varsa işareti ayarlamayabilir.Yazım denetleyicisine 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, kullanıcının yazmakta olduğu/oluşturduğu bir kelimeye/metne otomatik düzeltmenin uygulanacağını belirtir. Bu tür öneriler, otomatik düzeltmenin yapıldığını göstermek için farklı bir şekilde oluşturulur.
Bluetooth
fetchUuidsWithSdp()
ve getUuids()
adlı yeni genel yöntemler, 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 hizmet keşfi gerçekleştirir, ardından sonucu ACTION_UUID
amacı ile yayınlar.
Kullanıcı arayüzü araç seti
setUserVisibleHint()
ve getUserVisibleHint()
adlı yeni yöntemler, 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ılıncaya kadar kullanıcı tarafından görülebilen parçaların başlangıcını erteler. Görünürlük ipucu, varsayılan olarak "true" (doğru) şeklindedir.
Grafik
SurfaceTexture
öğesindeki yenisetDefaultBufferSize(int, int)
yöntemi, resim arabelleklerinin varsayılan boyutunu ayarlar. Bu yöntem,Canvas
(lockCanvas(Rect)
aracılığıyla) veya OpenGL ES (bir EGLSurface aracılığıyla) ile resimler üretilirken 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 izin verir.- Dokunma keşfi modu etkinleştirildiğinde yeni bir güvenli ayar,
ACCESSIBILITY_SPEAK_PASSWORD
kullanıcının, mikrofonlu kulaklık kullanılmadığında bile şifre alanlarına girilen metni IME'den okumasını isteyip istemediğini belirtir. Varsayılan olarak, mikrofonlu kulaklık kullanılmadığı sürece ş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ı hakkında bildirim 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. Yeni sınıf, uzaktan işlemlere gönderilecek imleçlerin sarmalanması için yararlı bir yapı taşıdır. Ayrıca normalCursor
nesnelerini şeffaf bir şekildeCrossProcessCursor
nesnelerine dönüştürebilir.CrossProcessCursorWrapper
sınıfı, uygulamaların içerik sağlayıcılarını 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)
desteği sonlandırıldı.
Etkinlikler
Cihazda yaygın olarak kullanılan uygulama türlerini (ör. CATEGORY_APP_BROWSER
, CATEGORY_APP_CALENDAR
, CATEGORY_APP_MAPS
vb.) 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
sabit değerleriyle temsil edilir.setVideoStabilization()
,getVideoStabilization()
veisVideoStabilizationSupported()
adlı yeni yöntemler,Camera
için video sabitlemeyi kontrol edip yönetmenize olanak tanıyor.
İ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ı ve 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 Farkları 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" adı verilen bu tanımlayıcı, sistemin bir uygulamanın sistemle uyumlu olup olmadığını uygulamayı yüklemeden önce 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 eklemeniz de gerekebilir.
Daha fazla bilgi için API Düzeyleri belgesine bakın.