Ön plan hizmetlerini beyan etme ve izin isteme

Uygulamanızın manifest dosyasında, ön plan hizmetlerinin her birini <service> öğesiyle beyan edin. Her hizmet için, hizmetin ne tür bir iş yaptığını belirtmek üzere bir android:foregroundServiceType özelliği kullanın.

Ayrıca, ön plan hizmetlerinizin ihtiyaç duyduğu tüm izinleri isteyin.

Sürüm uyumluluğu

Ön plan hizmetlerinizi beyan etme ve izin isteme şartları, uygulamanızın hedeflediği API düzeyine bağlı olarak değişir. Bu sayfada, API düzeyi 34 veya üstünü hedefleyen uygulamalarla ilgili şartlar açıklanmaktadır. Önceki platform sürümlerindeki ö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.

Ön plan hizmetlerini uygulama manifest dosyasında 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 hizmeti 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 bunu şu şekilde belirtin:

    android:foregroundServiceType="camera|microphone"
    
  • Uygulamanızın hedeflediği API düzeyine bağlı olarak, ön plan hizmetlerini uygulama manifest dosyasında beyan etmeniz zorunludur. Belirli API düzeyleriyle 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 türünü manifest'te belirtmezseniz sistem, startForeground() çağrıldıktan sonra MissingForegroundServiceTypeException hatası verir.

    Zorunlu olmasa bile tüm ön plan hizmetlerinizi beyan etmek ve hizmet türlerini belirtmek en iyi uygulamalardan biridir.

Ön plan hizmeti izinlerini isteme

Aşağıdaki kodda, kamerayı kullanan bir ön plan hizmeti için izinlerin nasıl isteneceği 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 kodda, API düzeyi 34 veya daha yüksek sürümleri hedefleyen bir uygulama için en iyi uygulamalar kullanılmaktadır.