Android¿¡¼ FCM Ǫ½Ã »ç¿ëÇϱâ
Android¿¡¼ Ǫ½Ã ¾Ë¸²À» ±¸ÇöÇÏ·Á¸é?
Àü¿¡ ÇÏ´ø ÇÁ·ÎÁ§Æ®¿¡¼ ¾Èµå·ÎÀ̵å¿Í ¼¹ö°£ÀÇ Çª½Ã ¾Ë¸²À» ±¸ÇöÇÏ¿´½À´Ï´Ù.
ÀÌ°É Çѹø Á¤¸®Çؼ ¹®¼È ÇØ¾ß ÇßÁö¸¸ ½Ã°£ÀÌ ¾ø¾î¼ Á¤¸®¸¦ ¸øÇÏ´Ù°¡ À̹ø ±âȸ¸¦ ÅëÇØ Æ÷½ºÆÃÀ» ÇÏ¿© Á¤¸®ÇÏ·Á ÇÕ´Ï´Ù.
À§ À̹ÌÁö´Â FCM »çÀÌÆ®¿¡¼ °¡Á®¿Â °ÍÀε¥, À̹ÌÁö¿¡¼ º¸´Â °Íó·³ Ǫ½Ã ¼ºñ½º¸¦ ±¸ÇöÇÏ·Á¸é ¸ð¹ÙÀÏÃø ±¸Çö°ú
Ǫ½Ã ¸Þ¼¼Áö¸¦ °ü¸®ÇÏ´Â ¼¹ö Ãø µÎ °¡Áö¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù. (GUI´Â Á¦¿ÜÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù.)
À̹ø Æ÷½ºÆÿ¡¼´Â FCMÀ» ¾Èµå·ÎÀ̵忡 Àû¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
¾Èµå·ÎÀ̵忡¼ FCM ¼³Á¤Çϱâ
¼³Á¤ÇÏ´Â °ÍÀº °ø½Ä¹®¼¸¦ Âü°íÇÏ¸é µÇÁö¸¸, ÀÌ Æ÷½ºÆÿ¡¼´Â Çٽɸ¸ Áý¾î¼ Á¤¸®Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù.
1. Firebase ÇÁ·ÎÁ§Æ® ¸¸µé±â
FCMÀ» Àû¿ëÇÒ ÇÁ·ÎÁ§Æ®¿¡ Firebase ÇÁ·ÎÁ§Æ®¸¦ Ãß°¡ÇØ¾ß Çϴµ¥, ÄֻܼçÀÌÆ®¿¡¼ ÇÁ·ÎÁ§Æ®¸¦ Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù.
ÇÁ·ÎÁ§Æ®°¡ ¹Ì Ãß°¡ »óŶó¸é À§ ÄÜ¼Ö »çÀÌÆ®¿¡¼ »ý¼ºÇÕ´Ï´Ù.
»ý¼ºÀÌ ¿Ï·áµÇ¸é À§ »çÁøó·³ ¼³Á¤ ¾ÆÀÌÄÜ Å¬¸¯ ÈÄ ÇÁ·ÎÁ§Æ® ¼³Á¤À» Ŭ¸¯ÇÏ¸é ¾Æ·¡ »çÁøó·³ ¼³Á¤ ȸéÀ¸·Î À̵¿ÇÏ°Ô µË´Ï´Ù.
ÀÌ°÷¿¡¼ Android ¾Û¿¡ Firebase Ãß°¡¸¦ Ŭ¸¯ÇÏ¸é ¾Û µî·Ï ȸéÀÌ ¶å´Ï´Ù.
¾Û µî·Ï | ±¸¼º ÆÄÀÏ ´Ù¿î·Îµå |
---|---|
¾Û µî·Ïȸ鿡¼´Â ¾Èµå·ÎÀ̵å ÆÐÅ°Áö À̸§(build.gradleÀÇ android{ applicationId }¿¡ ¼±¾ðµÈ °Í)À» µî·Ï ÈÄ,
´ÙÀ½ ȸéÀÎ ±¸¼º ÆÄÀÏ ´Ù¿î·Îµå¿¡¼ ¼³¸í¿¡ ³ª¿Â ´ë·Î json ÆÄÀÏÀ» ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡ÇÕ´Ï´Ù.
ÀÌÈÄ´Â ¾Æ·¡ÀÇ »çÁøó·³ ÀÛ¾÷À» ÁøÇàÇÕ´Ï´Ù.
2. Dependencies ¼³Á¤Çϱâ
¾Æ·¡ÀÇ ÀÇÁ¸¼ºÀ» Ãß°¡ÇØÁÝ´Ï´Ù.
1 | dependencies { |
4. FCM 󸮸¦ À§ÇÑ ¼ºñ½º Ŭ·¡½º ÀÛ¼º
Android Studio¿¡¼ ¼ºñ½º¸¦ ±¸ÇöÇÒ Å¬·¡½º¸¦ ¸¸µé¾îÁÝ´Ï´Ù.
À§ »çÁøÀº ±×³É Âü°í¿ëÀ̸ç, Àú °°Àº °æ¿ì ÆÐÅ°Áö¸¦ Çϳª ¸¸µé°í ±×°÷¿¡ »ý¼ºÇÏ¿´½À´Ï´Ù.
2°³ÀÇ Å¬·¡½º¸¦ »ý¼ºÇØ¾ß Çϴµ¥, FirebaseMessagingService¸¦ »ó¼Ó¹ÞÀº Ŭ·¡½º¿Í FirebaseInstanceIdService¸¦ »ó¼Ó¹ÞÀº Ŭ·¡½º¸¦ ¸¸µé¾îÁÝ´Ï´Ù.
¾Æ·¡´Â ¿¹½Ã·Î ¸¸µç Ŭ·¡½ºµéÀÔ´Ï´Ù.
¸ÕÀú FirebaseMessagingServiceÀ» »ó¼Ó¹ÞÀº Ŭ·¡½º¸¦ Çϳª ¸¸µé¾îÁÝ´Ï´Ù.
1 | import android.app.NotificationManager; |
ÀÌ ¼ºñ½º Ŭ·¡½º´Â Ǫ½Ã ¸Þ¼¼Áö¸¦ ¹Þ¾Æ¼ ó¸®ÇÏ´Â °ÍÀ» ±¸ÇöÇÕ´Ï´Ù.
onMessageReceived ¸Þ¼µå¿¡¼´Â Ǫ½Ã ¸Þ¼¼Áö¸¦ ¼ö½ÅÇßÀ» ¶§ È£ÃâÀÌ µÇ¸ç, pushDataMap¿¡´Â Ǫ½Ã ¸Þ¼¼Áö ³»¿ëÀÌ ´ã±â°Ô µË´Ï´Ù.
sendNotification ¸Þ¼µå´Â Ǫ½Ã ¸Þ¼¼Áö¸¦ ¾Ë¸²À¸·Î Ç¥ÇöÇϴ ó¸®¸¦ ´ã´çÇÏ°Ô µË´Ï´Ù.
ÇØ´ç ¸Þ¼µå´Â ÀÚ½ÅÀÇ ·ÎÁ÷¿¡ ¸Â°Ô²û ±¸ÇöÇÏ¸é µÇ¸ç, À§´Â ¿¹·Î ±¸ÇöÀ» ÇÑ °ÍÀÔ´Ï´Ù.
´ÙÀ½Àº FirebaseInstanceIdService¸¦ »ó¼Ó¹ÞÀº Ŭ·¡½º ¿¹½ÃÀÔ´Ï´Ù.
1 | import com.google.firebase.iid.FirebaseInstanceId; |
ÀÌ Å¬·¡½º´Â ¾îÇø®ÄÉÀ̼ÇÀÌ Ã³À½ ¼³Ä¡µÇ°Å³ª °¡²û ÅäÅ«ÀÌ °»½ÅµÉ ¶§ onTokenRefresh ¸Þ¼µå¸¦ ÅëÇØ FCM TokenÀ» Çϳª »ý¼ºÀÌ µÇ¾îÁý´Ï´Ù.
±×¸®°í ÀÌ ÅäÅ«ÀÌ »ý¼ºµÇ°Å³ª °»½ÅµÈ °æ¿ì ¼¹ö¿¡ º¸³»ÁÖ´Â ¸Þ¼µåÀÎ sendRegistrationToServer¸¦ È£ÃâÇÏ°Ô µË´Ï´Ù.
ÀÌ FCM ÅäÅ«À» ÅëÇØ ÇØ´ç ±â±â·Î ¼¹ö¿¡¼ Ǫ½Ã ¸Þ¼¼Áö¸¦ º¸³»°Ô ÇØÁÖ´Â °íÀ¯ °ªÀÔ´Ï´Ù.
ÀÌ ºÎºÐÀº ÇâÈÄ¿¡ ¼¹ö Ãø ±¸Çö ½Ã FCM ÅäÅ«ÀÌ °»½ÅµÇ´Â ºÎºÐÀ» °³¹ßÇØ¾ß ÇÕ´Ï´Ù.
»ç½Ç ´Ù¸¥ ºí·Î±×µé¿¡¼´Â ¿©±â±îÁö¸¸ ´ëºÎºÐ ¼³¸íÀ» ÇÏ°Ô µË´Ï´Ù.
±×·±µ¥ »ç½Ç ÀÌ·± Á¤º¸¸¦ ãÀ¸½Ã´Â ºÐµéÀº ¿ä±¸»çÇ׿¡ ¸Â´Â ³»¿ëÀ» ±¸ÇöÇϱâ À§ÇØ ³»¿ëÀ» ã°Ô µË´Ï´Ù.
ÀüºÎ ´Ù Ä¿¹öÇÒ ¼ö´Â ¾øÁö¸¸ µÎ °¡Áö ¿¹½Ã »çÇ×À» º¸°í ¾î¶²½ÄÀ¸·Î ·ÎÁ÷À» Ç®¾î³ª°¡¾ß ÇÒÁö¸¦ ¾Ë¾Æº¸°Ú½À´Ï´Ù.
¾Ë¸² ¼ö½Å ¿©ºÎ
¿¹¸¦ µé¾î ¾Ë¸² ¼ö½Å ½Ã°£À» Á¦ÇÑÇÏ´Â ±â´ÉÀ» ±¸ÇöÇØ¾ß ÇÑ´Ù°í Çغ¾½Ã´Ù.
±×·³ ¾Æ·¡¿Í °°Àº ·ÎÁ÷À» »ý°¢ÇØ º¼ ¼ö ÀÖ°Ú½À´Ï´Ù.
- »ç¿ëÀڷκÎÅÍ ¾Ë¸² ¼ö½ÅÀ» Á¦¿ÜÇÒ ½Ã°£À» ÀԷ¹޽À´Ï´Ù.
- 1¹øÀÇ µ¥ÀÌÅ͸¦ Sharedpreference µî¿¡ ÀúÀåÀ» ÇصӴϴÙ.
- FirebaseMessagingService¸¦ ±¸ÇöÇÑ Å¬·¡½ºÀÇ onMessageReceived¸Þ¼µå¿¡¼ Ǫ½Ã ¾Ë¸² ¼ö½ÅÀ» ÇÏ¿´À» ¶§ 2¹øÀÇ ÀúÀåµÈ µ¥ÀÌÅ͸¦ Àоî¿Í¼ ÇØ´ç ½Ã°£ÀÌ Çª½Ã ¾Ë¸²ÀÌ °¡´ÉÇÒ °æ¿ì¿¡¸¸ sendNotification() ¸Þ¼µå¸¦ È£Ãâ.
Àú °°Àº °æ¿ì ¾Æ·¡¿Í °°Àº ¸Þ¼µå¸¦ Çϳª ¸¸µé°í ·ÎÁ÷À» ±¸ÇöÇÏ¿´½À´Ï´Ù.
1 | private boolean isCanReceivePush(String pushMsg) { |
±×·¡¼ onMessageReceived ¸Þ¼µå¿¡¼ Àú ¸Þ¼µå¸¦ È£ÃâÇÏ¿© true °ªÀ» ¹ÞÀ» °æ¿ì¿¡¸¸ ¸Þ¼¼Áö¸¦ ¼ö½ÅÇϴ ó¸®¸¦ ÇÏ¿´½À´Ï´Ù.
ÅäÅ« »ý¼º ¹× °»½Å ºÎºÐ
À§¿¡¼ ¼³¸íµå¸° °Íó·³ ¾îÇø®ÄÉÀ̼ÇÀ» óÀ½ ¼³Ä¡ÇÒ ¶§³ª FCM ÅäÅ«À» °»½ÅÇÒ °æ¿ì¿£ Sharedpreference¿¡ ÅäÅ« °ªÀ» ÀúÀåÇصδ °Ô ÁÁ½À´Ï´Ù.
±×·¡¼ onTokenRefresh() ¸Þ¼µå¿¡¼ È£Ã⠽à ¾Æ·¡¿Í °°ÀÌ ÀÀ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
1 |
|
Á¦°¡ °³¹ßÇß´ø ±¸Çü ·ÎÁ÷À» ±×´ë·Î °¡Á®¿Í¼ ¾à°£ ÁöÀúºÐÇØ º¸ÀÏ ¼ö ÀÖ½À´Ï´Ù¸¸ ÀÏ´Ü Âü°í ¹× ¼³¸í¿ëÀÓÀ» °¨¾ÈÇØÁֽñ⠹ٶø´Ï´Ù.
ÀÏ´Ü Àú °°Àº °æ¿ì ¾Æ·¡ÀÇ ·ÎÁ÷À¸·Î ±¸ÇöÇÏ¿´½À´Ï´Ù.
- °»½ÅµÈ ÅäÅ«ÀÌ Á¤»óÀÎÁö üũ
- Sharedpreference¿¡ ÀúÀåµÈ FCM ÅäÅ« °ªÀÌ ¾ø´Â °æ¿ì¿¡¸¸ ÀúÀå.
- ¸¸¾à ·Î±×ÀÎ »óÅÂÀÏ °æ¿ì Sharedpreference¿¡ °»½ÅµÈ ÅäÅ«À» ÀúÀåÇÏ°í ¼¹ö·Î °»½ÅµÈ ÅäÅ«À» Àü¼ÛÇÏ´Â ¸Þ¼µå¸¦ È£Ãâ.
°£´ÜÇÏ°Ô µÎ °¡ÁöÀÇ ¿¹½Ã¸¸ ¼³¸íÀ» µå·È½À´Ï´Ù.
´Ù¸¥ ¿ä±¸»çÇ×ÀÌ ÀÖ´Ù¸é À§¿¡¼ ¾È³»µå¸° °Íó·³ ·ÎÁ÷À» Ç®¾îº¸°í ±×¿¡ ¸ÂÃç¼ ±¸ÇöÀ» Çϸé Ǫ½Ã´Â ¾î·ÆÁö ¾Ê°Ô ±¸ÇöÀ» ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
5. Manifest ÆÄÀÏ ¼öÁ¤
À§¿¡¼ »ý¼ºÇÑ ¼ºñ½º Ŭ·¡½º¸¦ ¸Å´ÏÆ佺Ʈ¿¡ µî·ÏÇÕ´Ï´Ù.
1 | <!-- Firebase Service --> |
À§ ÀÛ¾÷À» ´Ù ¸¶Ä¥ °æ¿ì Ǫ½Ã¸¦ ¼ö½ÅÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
Á¤¸®
»ç½Ç ÀÌ Æ÷½ºÆ® Çϳª¸¸À¸·Î´Â Ǫ½Ã ¼ºñ½º¸¦ ±¸ÇöÇß´Ù ÇÒ ¼ö ¾ø½À´Ï´Ù.
°³ÀÎÀûÀ¸·Î Ǫ½Ã ¼ºñ½º¸¦ ±¸ÇöÇÏ·Á¸é ¼¹ö ÃøÀÇ ±¸ÇöÀÌ Á¦ÀÏ Áß¿äÇÑ °Í °°½À´Ï´Ù.
ÀÌ Æ÷½ºÆ®¿Í ¦À» ÀÌ·ê ¼¹ö Ãø ±¸Çö Æ÷½ºÆÃÀº °ð ÀÛ¼ºÇÏ¿© ¾÷µ¥ÀÌÆ® Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù.
¶ÇÇÑ 1:1 Ǫ½Ã ¸»°í ±¸µ¶ °ªÀ» ÀÌ¿ëÇÏ¿© Ǫ½Ã¸¦ ¹Þ´Â ³»¿ëµµ Æ÷½ºÆÃÇÒ ¿¹Á¤ÀÔ´Ï´Ù.
¾÷µ¥ÀÌÆ®¸¦ ±â´Ù·ÁÁÖ¼¼¿ä.