FCM mesajlarını doğrudan başlatma modunda al

Cihazın kilidi açılmadan önce uygulamalara FCM mesajları göndermek istiyorsanız doğrudan başlatma modunu etkinleştirebilirsiniz. Örneğin, uygulamanızın kullanıcılarının kilitli cihazlarda bile alarm bildirimleri almasını istiyorsanız.

Bu kullanım alanını oluştururken doğrudan başlatma moduyla ilgili genel en iyi uygulamalara ve kısıtlamalara uyun. Doğrudan başlatma özelliği etkinleştirilmiş mesajların görünürlüğünü göz önünde bulundurmak önemlidir. Cihaza erişimi olan tüm kullanıcılar, kullanıcı kimlik bilgilerini girmeden bu mesajları görüntüleyebilir.

Ön koşullar

  • Cihaz, doğrudan başlatma moduna ayarlanmış olmalıdır.
  • Cihazda Google Play Hizmetleri'nin yeni bir sürümü (19.0.54 veya sonraki sürümler) yüklü olmalıdır.
  • Uygulama, FCM mesajlarını almak için FCM SDK'sını (com.google.firebase:firebase-messaging) kullanmalıdır.

Uygulamanızda doğrudan başlatma modu mesaj işleme özelliğini etkinleştirme

  1. Uygulama düzeyindeki Gradle dosyasına FCM doğrudan yeniden başlatma destek kitaplığına bağımlılık ekleyin:

    implementation 'com.google.firebase:firebase-messaging-directboot:20.2.0'
    
  2. Uygulama manifestine android:directBootAware="true" özelliğini ekleyerek uygulamanın FirebaseMessagingService doğrudan başlatma işlemine uygun olmasını sağlayın:

    <service
        android:name=".java.MyFirebaseMessagingService"
        android:exported="false"
        android:directBootAware="true">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
    

Bu FirebaseMessagingService cihazının doğrudan başlatma modunda çalışabildiğinden emin olmanız önemlidir. Aşağıdaki koşulları kullanarak kontrol edebilirsiniz:

  • Hizmet, doğrudan başlatma modunda çalışırken kimlik bilgisiyle korunan depolama alanına erişmemelidir.
  • Hizmet, doğrudan başlatma modunda çalışırken doğrudan başlatmaya uygun olarak işaretlenmemiş Activities, BroadcastReceivers veya diğer Services gibi bileşenleri kullanmaya çalışmamalıdır.
  • Hizmetin kullandığı tüm kitaplıklar, doğrudan başlatma modunda çalışırken kimlik bilgisiyle korunan depolama alanına erişmemeli veya doğrudan başlatma moduna uygun olmayan bileşenleri çağırmamalıdır. Bu nedenle, uygulamanın kullandığı ve hizmetten çağrılan tüm kitaplıkların doğrudan başlatma moduna uygun olması veya uygulamanın doğrudan başlatma modunda çalışıp çalışmadığını kontrol etmesi ve bu modda kitaplıkları çağırmaması gerekir. Örneğin, Firebase SDK'ları doğrudan başlatma ile çalışır (doğrudan başlatma modunda uygulamayı kilitlenmeden dahil edilebilir), ancak birçok Firebase API'si doğrudan başlatma modunda çağrılmayı desteklemez.
  • Uygulama özel bir Application kullanıyorsa Application da doğrudan başlatma moduna uygun olmalıdır (doğrudan başlatma modunda kimlik bilgisiyle korunan depolama alanına erişim yoktur).

Doğrudan başlatma özelliği etkinleştirilmiş mesajlar gönderme

HTTP v1 API'yi kullanarak doğrudan başlatma modundaki cihazlara mesaj gönderebilirsiniz.

Mesaj isteği, istek metninin AndroidConfig seçeneklerinde "direct_boot_ok": true anahtarını içermelidir. Örneğin:

https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send
Content-Type:application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA

{
  "message":{
    "token" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data": {
      "score": "5x1",
      "time": "15:10"
    },
    "android": {
      "direct_boot_ok": true,
    },
}