Uygulamanızın manifest dosyasında, uygulamanızın her bir ön plan hizmetini <service> öğesiyle beyan edin. Her hizmet için bir android:foregroundServiceType özelliği kullanarak hizmetin ne tür bir iş yaptığını belirtin.
Ayrıca, ön plan hizmetlerinizin ihtiyaç duyduğu izinleri isteyin.
Sürüm uyumluluğu
Ön plan hizmetlerinizi beyan etme ve izin isteme şartları, uygulamanızın hedeflediği API düzeyine göre değişir. Bu sayfada, API düzeyi 34 veya sonraki sürümleri hedefleyen uygulamalarla ilgili şartlar açıklanmaktadır. Önceki platform sürümlerinde ön plan hizmetlerinde yapılan değişiklikler hakkında bilgi edinmek için Ön plan hizmetlerinde yapılan değişiklikler başlıklı makaleyi inceleyin.
Uygulama manifestinde ön plan hizmetlerini beyan etme
Aşağıdaki kodda, medya oynatma ön plan hizmetinin nasıl beyan edileceği gösterilmektedir. Müzik çalmak için bu tür bir hizmet kullanabilirsiniz.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
<application ...>
<service
android:name=".MyMediaPlaybackService"
android:foregroundServiceType="mediaPlayback"
android:exported="false">
</service>
</application>
</manifest>
Kodla ilgili önemli noktalar
Bu örnekte hizmetin yalnızca bir türü (
media) vardır. Hizmetiniz için birden fazla tür geçerliyse bunları|operatörüyle ayırın. Örneğin, hizmetiniz kamera ve mikrofon kullanıyorsa şu şekilde beyan edin:android:foregroundServiceType="camera|microphone"Uygulamanızın hedeflediği API düzeyine bağlı olarak, uygulama manifest dosyasında ön plan hizmetlerini beyan etmeniz gerekebilir. Belirli API seviyeleriyle ilgili şartlar, Ön plan hizmetlerinde yapılan değişiklikler bölümünde açıklanmıştır.
Bir ön plan hizmeti oluşturmaya çalışırsanız ve hizmetin türü manifest dosyasında beyan edilmemişse sistem,
startForeground()çağrıldığındaMissingForegroundServiceTypeExceptionhatası verir.Zorunlu olmasa bile tüm ön plan hizmetlerinizi beyan etmeniz ve hizmet türlerini belirtmeniz en iyi uygulamadır.
Ön plan hizmeti izinlerini isteme
Aşağıdaki kodda, kamerayı kullanan bir ön plan hizmeti için izinlerin nasıl isteneceğini gösterilmektedir.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA"/>
<application ...>
...
</application>
</manifest>
Kodla ilgili önemli noktalar
- Bu kod, hedef API düzeyi 34 veya daha yüksek olan uygulamalar için en iyi uygulamaları kullanır.