Ön plan hizmetlerini beyan etme ve izin isteme

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ığında MissingForegroundServiceTypeException hatası 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.