android - एंड्रॉइड में फायरबेस से अधिसूचना भेजते समय कोई अधिसूचना ध्वनि नहीं




push-notification notifications (6)

मैं अपने Android एप्लिकेशन को फायरबेस से पुश सूचना भेज रहा हूं। लेकिन जब मेरा ऐप बैकग्राउंड फायरबेस ऑन मेसेजेज में है तो रीसेंट मेथड को कॉल नहीं किया जाता है बजाय इसके कि फायर ट्रे को सिस्टम ट्रे में नोटिफिकेशन दिखाने के लिए सिस्टम को नोटिफिकेशन भेजें। नोटिफिकेशन सिस्टम ट्रे में दिखाई देता है, लेकिन नोटिफिकेशन के लिए कोई साउंड नहीं है, यहां तक ​​कि मैंने सिस्टम सेटिंग्स में अपने ऐप के लिए नोटिफिकेशन साउंड की अनुमति नहीं दी है।

जब फायरबेस से सूचना प्राप्त होती है तो मैं सूचना ध्वनि चलाने के लिए क्या कर सकता हूं।

यह है कि मैं अपने ऐप Blogpost लिंक पर फायरबेस से अधिसूचना कैसे भेज रहा हूं।

अपने Android एप्लिकेशन में फायरबेस कैसे जोड़ें


HTTP v1 एपीआई के साथ यह अलग है

Documentation

उदाहरण:

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {

    //codes..,.,,

    Uri sound= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        builder.setSound(sound);

}

अगर मैं इसे फायरबेस कंसोल से भेजता हूं तो भी मैं नोटिफिकेशन साउंड प्ले करने में सक्षम हूं। ऐसा करने के लिए आपको केवल अग्रिम विकल्प में मूल्य "डिफ़ॉल्ट" के साथ कुंजी "ध्वनि" जोड़ना होगा।


इसे अवश्य पसंद करें

{
 "message":{
    "topic":"news",
    "notification":{
       "body":"Very good news",
       "title":"Good news"
    },
    "android":{
       "notification":{
          "body":"Very good news",
          "title":"Good news",
          "sound":"default"
       }
    }
  }
}

इसे इस्तेमाल करे

{
    "to" : "DEVICE-TOKEN",

    "notification" : {
      "body"  : "NOTIFICATION BODY",
      "title" : "NOTIFICATION TITILE",
      "sound" : "default"
    }
  }

@ नोटिफिकेशन फॉर कस्टम नोटिफिकेशन साउंड: -> "sound" : "MyCustomeSound.wav"


संदेश लिखते समय उन्नत विकल्पों का चयन करें , और ध्वनि सक्रिय चुनें

यह मेरा समाधान है


onMessageReceived पद्धति केवल तभी निकाल दी जाती है जब ऐप अग्रभूमि में होता है या सूचना पेलोड में केवल डेटा प्रकार होता है।

Firebase डॉक्स से

डाउनस्ट्रीम मैसेजिंग के लिए, FCM दो प्रकार का पेलोड प्रदान करता है: सूचना और डेटा

अधिसूचना प्रकार के लिए, एफसीएम स्वचालित रूप से क्लाइंट ऐप की ओर से एंड-यूज़र डिवाइस को संदेश प्रदर्शित करता है। अधिसूचना में उपयोगकर्ता-दृश्यमान कुंजी का पूर्वनिर्धारित सेट होता है।
डेटा प्रकार के लिए, क्लाइंट ऐप डेटा संदेशों को संसाधित करने के लिए जिम्मेदार है। डेटा संदेशों में केवल कस्टम कुंजी-मूल्य जोड़े होते हैं।

जब आप FCM को अपने क्लाइंट ऐप की ओर से सूचना प्रदर्शित करने से निपटना चाहते हैं तो सूचनाओं का उपयोग करें । जब आप अपने ऐप को डिस्प्ले को हैंडल करना चाहते हैं या अपने एंड्रॉइड क्लाइंट ऐप पर संदेशों को संसाधित करना चाहते हैं, या यदि आप प्रत्यक्ष एफसीएम कनेक्शन होने पर आईओएस डिवाइस पर संदेश भेजना चाहते हैं, तो डेटा संदेशों का उपयोग करें

docs आगे

संदेश प्राप्त करते समय ऐप व्यवहार , जिसमें अधिसूचना और डेटा पेलोड दोनों शामिल हैं, यह निर्भर करता है कि ऐप पृष्ठभूमि में है या अग्रभूमि में- अनिवार्य रूप से, प्राप्ति के समय सक्रिय है या नहीं।
जब पृष्ठभूमि में , एप्लिकेशन सूचना ट्रे में सूचना पेलोड प्राप्त करते हैं, और उपयोगकर्ता द्वारा अधिसूचना पर टैप करने पर केवल डेटा पेलोड को संभालते हैं।
अग्रभूमि में होने पर , आपके एप्लिकेशन को उपलब्ध दोनों पेलोड के साथ एक संदेश ऑब्जेक्ट प्राप्त होता है।

यदि आप सूचना भेजने के लिए फायरबेस कंसोल का उपयोग कर रहे हैं, तो पेलोड में हमेशा अधिसूचना प्रकार होगा। आपको सूचना पेलोड में केवल डेटा प्रकार के साथ सूचना भेजने के लिए फायरबेस एपीआई का उपयोग करना होगा। इस तरह एक नया नोटिफिकेशन मिलने पर आपके ऐप को हमेशा सूचित किया जाता है और ऐप नोटिफिकेशन पेलोड को हैंडल कर सकता है।

यदि आप पारंपरिक विधि का उपयोग करके पृष्ठभूमि में एप्लिकेशन को ध्वनि चलाना चाहते हैं, तो आपको https://firebase.google.com/docs/cloud-messaging/http-server-ref#notification-payload-support को अधिसूचना पेलोड में https://firebase.google.com/docs/cloud-messaging/http-server-ref#notification-payload-support





firebase-cloud-messaging