Cihazın kilidi açılmadan önce uygulamalara FCM mesaj 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 modu için 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
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'
Uygulama manifestine
FirebaseMessagingService
özelliğini ekleyerek uygulamanınFirebaseMessagingService
doğrudan başlatma işlemine uygun olmasını sağlayın:android:directBootAware="true"
<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
öğesinin 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 bilgileriyle 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ğerServices
gibi bileşenleri kullanmaya çalışmamalıdır. - Hizmetin kullandığı tüm kitaplıklar, doğrudan başlatma modunda çalışırken kimlik bilgileriyle korunan depolamaya erişmemeli veya directBootAware olmayan bileşenleri çağırmamalıdır. Bu nedenle, uygulamanın hizmetten çağrılan tüm kitaplıklarının doğrudan başlatmaya 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ıyorsaApplication
da doğrudan başlatma işlemine duyarlı olmalıdır (doğrudan başlatma modunda kimlik bilgileriyle 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,
},
}