рдЕрд╕реНрдерд┐рд░ Google C2DM рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВ

рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реБрдЖ рдХрд┐ рдХрд╛рдо рдкрд░ рдореИрдВ, рд╕рдорд╛рди рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рдПрдХ рдЫреЛрдЯреА рдЯреАрдо рдХреЗ рд╕рд╛рде, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, iPhone рдФрд░ Android рдХреЗ рд▓рд┐рдП рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рд▓рд┐рдЦрддрд╛ рд╣реВрдВред

рд╣рдордиреЗ iPhone рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЬрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпрд╛ рдХрд╛рдо рдХрд┐рдпрд╛? рдЖрд╡реЗрджрди рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдирд╛ рдерд╛ "рдЖрдк рдХрд╣рд╛рдВ рд╣реИрдВ?" - рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдкрддреЗрджрд╛рд░ рддрдХ рдкрд╣реБрдВрдЪрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЬрдмрдХрд┐ рдпрд╣ рдЕрднреА рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред рдпрд╣рд╛рдВ, iPhone рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реЛрдиреЗ рдкрд░, рдкрд╛рдардХ рдХрд╣реЗрдВрдЧреЗ рдХрд┐ рдПрдкреАрдПрди рд╕реЗрд╡рд╛ рд╣реИ, рдФрд░ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реЛрдЧреАред рдпрд╣ рд╣рдо рдереЗ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рджреБ: рдЦ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдереЗ, рдХреНрдпреЛрдВрдХрд┐ рдЗрди рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рдПрдХ рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬреА рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдлрд┐рд░, рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рд╣рдордиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд┐рдХрд╛рд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рд╕рдм рдХреБрдЫ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рджреВрд╕рд░реЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ, рдПрдкреАрдПрди рдореЙрдбреНрдпреВрд▓ рдХреЛ C2DM рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рднреА рдлреЛрди рдкрд░ рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд╡рд┐рддрд░рдг рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред рд▓реЗрдХрд┐рди рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рддреБрд░рдВрдд рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ - рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рд▓реАрд╡рд░реА рдХрд╛ рд╕рдордп рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рдерд╛, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреБрдЫ рдШрдВрдЯреЛрдВ рдореЗрдВ рдкрд╣реБрдВрдЪ рдЧрдПред рдФрд░ рдЙрд╕реА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░, рд╡реЗ рд╕реЗрдХрдВрдб рдореЗрдВ рдкрд╣реБрдВрдЪ рдЧрдПред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рд╢реЛрдз рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди, рдореБрдЭреЗ Google рдХреА рдУрд░ рд╕реЗ рдЗрди рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдХрдИ рдЕрдЬреАрдм рд▓рдХреНрд╖рдг рдЖрдПред


рдЕрдВрдзрд╛рдзреБрдВрдз рд░реВрдк рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░реИрдХреНрд╢рди рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рдЗрди рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреБрднрд╛рдЧ 4 рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред Google C2DM рдХрд╛ рд╡рд┐рдХрд▓реНрдк, рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдирд╣реАрдВред "

1. рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдпреЛрдЬрдирд╛


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдХрд┐рдиреНрдирд░ (рдкрдж рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ GOST y рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд╣реАрдВ):
рд╕реНрдорд╛рд░реНрдЯрдлреЛрди-рд╕рд░реНрд╡рд░-рд╕реА 2 рдбреАрдПрдо рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реЗрдЦ
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпреМрдЧрд┐рдХ 1, 2 рдФрд░ 3 рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
  1. рдпрд╣ рд╣рдорд╛рд░рд╛ рдЦреБрд▓рд╛ HTTP рдХрдиреЗрдХреНрд╢рди рд╣реИ рдЬреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдХреЗрд╡рд▓ 200 рдУрдХреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ рдФрд░ рдмрд╛рдХреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдмреЛрддрд▓ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ - рдЕрдм рддрдХ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ, рдФрд░ рд╡реЗ рдХреБрдЫ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВ (рд╕рдХреНрд░рд┐рдп рдХрд╛рд░реНрдп рдХреЗ рджреМрд░рд╛рди 60-100 рд╕рдВрджреЗрд╢ / рдПрд╕)ред
  2. рд╣рдорд╛рд░рд╛ рд╕рд░реНрд╡рд░ HTTP рд╕реЗ Google рдХреЗ рд╕рд░реНрд╡рд░ рддрдХ рдЗрд╕ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рд▓рдЧрд╛рддрд╛рд░ 2 рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рд╣реЛрдВрдЧреЗ: рдкрд╣рд▓реЗ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг - рдХреНрд▓рд╛рдЗрдВрдЯрд▓реЙрдЧрд┐рди, рдлрд┐рд░ android.clients.google.com/c2dm/send рдкрд░ рдПрдХ рдЕрдиреБрд░реЛрдзред рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЬреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╢реБрд░реВ рдХреА рдереА, рд╡рд╣ рдпрд╣рд╛рдБ рдереАред
  3. рдЕрдВрдд рдореЗрдВ, рдпрд╣ рдХрдиреЗрдХреНрд╢рди Google рдХреЛ Android рд╕реНрдорд╛рд░реНрдЯрдлрд╝реЛрди рдХреЗ рд╕рд╛рде рд░рдЦрддрд╛ рд╣реИред


2. рд╣рдо C2DM рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ


рдЪреВрдВрдХрд┐ рдореИрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рди рдирдВрдмрд░ 2 рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдкрддреНрдерд░ рдиреЗ рдореБрдЭ рдореЗрдВ рдЙрдбрд╝рд╛рди рднрд░реАред рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

рдореЗрд░реА рд╡рд┐рдирдореНрд░ рд░рд╛рдп рдореЗрдВ, рдЖрд╡реЗрджрди рдореЗрдВ C2DM рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП, рдЗрд╕рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рд╡рд░рдг рд╣реИрдмреНрд░реЗрдЯреЛрдкрд┐рдХ рдореЗрдВред рд╣рдо рдХреНрд▓рд╛рдЙрдб рдЯреВ рдбрд┐рд╡рд╛рдЗрд╕ рдореИрд╕реЗрдЬрд┐рдВрдЧ (C2DM) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ

рдпрд╣ рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡рдпрдВ рдЗрд╕ рд▓реЗрдЦ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХрднреА-рдХрднреА Google рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рджреМрд░рд╛рди, рдХрдиреЗрдХреНрд╢рди рд╕рдордпрдмрджреНрдз рд╣реЛ рдЧрдпрд╛, рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рд╣рдорд╛рд░реЗ рдПрдХ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред рд╕реЛрдЪрд╛ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рд╛рдЧреВ рд╕рдорд╛рдзрд╛рди рдЙрдкрдпреЛрдЧреА рд╕рд╛рдмрд┐рдд рд╣реБрдЖред
рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЬреЗрдЯреА рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ JAR рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдореИрдВ C2DM рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЛ рдХрд╛рдлреА рджрд░реНрдж рд░рд╣рд┐рдд рд░реВрдк рд╕реЗ рдкреБрди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдЪрд░рдг 1

рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЬреЛрдбрд╝реЗрдВред

public class C2DMServer implements IPushNotificator, IPushChecker { ... @Override @Async //     public void sendData(String deviceId, String c2dmID, String jsonObject) { ... } } 


рдЗрд╕ рдХрджрдо рдиреЗ рдПрдХ рдФрд░ рд╕реБрдзрд╛рд░ рджрд┐рдпрд╛ - рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЧреНрд░рд╛рд╣рдХ рдХреА 200 рдУрдХреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрдм рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдЖрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдЯреНрд░реАрдо Google рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред

рдЪрд░рдг 2

Google рдХреЗ рд╕рдорд╡рд░реНрддреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
рдЧреБрдгрд╛рдВрдХ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЪрдпрди рдереЗ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рд╣реБрдЖред

 <task:annotation-driven executor="asyncExecutor" /> <task:executor id="asyncExecutor" pool-size="15" queue-capacity="300" rejection-policy="CALLER_RUNS" /> 


рдпрджрд┐ рдкреВрд▓-рдЖрдХрд╛рд░ 15 рд╕реЗ рдЕрдзрд┐рдХ рдкрд░ рд╕реЗрдЯ рд╣реИ, рддреЛ рдПрдХ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдХреА рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдиреЗрдЯрд╡рд░реНрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИред

рдкрд░рд┐рдгрд╛рдо

рдХреНрдпрд╛ рдкреНрд░рд╕рдиреНрди рд╣реБрдЖ : Google рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдореЗрдВ рдХреЛрдИ рдФрд░ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдереАред
рдХреНрдпрд╛ рдкрд░реЗрд╢рд╛рди : рд╡рд┐рддрд░рдг рдХреА рдЧрддрд┐ рдХреА рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд╣реБрдИ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВред

3. рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╕рд╛рде Google рдХреЗ рдХрд╛рдо рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВ


рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреЛрдИ рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реЗрд╡рд╛ рд╕реЗ рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬрдиреА рд╣реИрдВред

рдпрд╣ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ C2DMBaseReceiver рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред
рдЖрдк рдПрдХ рд╣реА рдирд┐рд╡рд╛рд╕ рд╕реНрдерд╛рди рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдХреНрд▓рд╛рдЙрдб рдЯреВ рдбрд┐рд╡рд╛рдЗрд╕ рдореИрд╕реЗрдЬрд┐рдВрдЧ (C2DM) рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ ред рдпрд╣рд╛рдБ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ:

 import com.google.android.c2dm.C2DMBaseReceiver; public class C2DMReceiver extends C2DMBaseReceiver { private static final String DATA = "data"; public C2DMReceiver() { super(Settings.C2DM_ACCOUNT); } @Override public void onDestroy() { super.onDestroy(); } @Override public void onError(Context context, String errorId) { Settings.Init(context, false); Settings.updateC2DM(null); } @Override protected void onMessage(Context context, Intent receiveIntent) { Settings.Init(context, false); String data = receiveIntent.getStringExtra(DATA); JSONUtils.processJSON(context, data); } @Override public void onRegistered(Context context, String registrationId) { Settings.Init(context, false); if (!registrationId.equals(Settings.getC2dm_id())) Settings.updateC2DM(registrationId); } @Override public void onUnregistered(Context context) { } } 

рдпрд╣рд╛рдБ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдПрдХ рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдЯреЗрдЯрд┐рдХ рдлрд╝реАрд▓реНрдбреНрд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдФрд░ рдПрдкреНрд▓реАрдХреЗрд╢рди рд╕реНрдЯреЗрдЯ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВред JSONUtils рдПрдХ рдЕрдиреНрдп рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ JSON рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рдХрд╛ рдХреНрд╖рдг рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рд╣рдо C2DM рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдШрдЯрдирд╛ рдкрд░ рд▓рдЯрдХрд╛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЬрдм рдпрд╣ рдЯреНрд░рд┐рдЧрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рддреБрд░рдВрдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдРрд╕реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг: ┬лAPA91bF8hral5wCq_E7HPD1wq29aSIEYyY2g_P4BOue_CaBTJvTHKFPplmp2MHxFgn3c1ysNjTHyXmsp8OejRSc809ZiOYqNcXoJWiWfvarCayT6ar3RyZwRRV0CrgQNaPjLxTrYqXXcQfcxjB07xmjeNtUzc6UlGQ┬╗ред

рдЙрд╕рдХреЗ рдмрд╛рдж, рдЗрд╕ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде C2DM рд╕рд░реНрд╡рд░ рдХреЛ рдХреЛрдИ рднреА рд╕рдВрджреЗрд╢ рд╡рд╛рдВрдЫрд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрди рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдХреИрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

C2DM-GTalk рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдПрдХреНрд╢рди рдЖрд░реЗрдЦ

рд╕рднреА рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдХреНрд▓рд╛рдЙрдб рдЯреВ рдбрд┐рд╡рд╛рдЗрд╕ рдореИрд╕реЗрдЬрд┐рдВрдЧ рд╣реИред
рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдЙрдкрдХрд░рдгреЛрдВ рдкрд░, рдпрд╣ рд╕реЗрд╡рд╛ рдХрднреА-рдХрднреА рдореЗрдореЛрд░реА рд╕реЗ рдЕрдирд▓реЛрдб рд╣реЛрддреА рдереАред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдИ рдУрдПрд╕ рд▓реЙрдХ рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдиреЗ рдкрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрдВрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕реЗрд╡рд╛ Google рдореИрд╕реЗрдЬрд┐рдВрдЧ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдореВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ GTalk рднреА рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ X2P рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ C2DM рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯреЗрдб рд╣реИ рдЬрд┐рд╕ рдкрд░ GTalk рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдЪреИрдирд▓ рдкрд░, рд╣рд░ 300 рд╕реЗрдХрдВрдб рдореЗрдВ, C2DM рд╕реЗрд╡рд╛ Google рд╕рд░реНрд╡рд░ рдХреЛ рдкрд┐рдВрдЧ рднреЗрдЬрддреА рд╣реИ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреА рд╣реИ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рдХреНрд░рдо рдореЗрдВ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рд╕реНрд░реЛрдд рджреЗрдЦреЗрдВред
рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рджреБрдЦреА рдирд╣реАрдВ рд╣реИред рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕реЗрд╡рд╛ рддрдм рдареАрдХ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрдм рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓рддреА рд╣реИ рдФрд░ рдЬрдм рд╕реНрдХреНрд░реАрди рдЪрд╛рд▓реВ рд╣реЛрддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдореЗрд╢рд╛ рдирд╣реАрдВред
рдЕрдкрдиреЗ рдХрдиреЗрдХреНрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк *#*#8255#*#* рдбрд╛рдпрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЦреБрд▓рдиреЗ рд╡рд╛рд▓реЗ GTalk Service Monitor рдореЗрдВ рджреЗрдЦреЗрдВ рдХрд┐ Google рдореИрд╕реЗрдЬрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреМрди рд╕рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдЗрд╕рд▓рд┐рдП, рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдкрд╣рдЪрд╛рди рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдерд╛ред
рдмрд┐рд▓реНрдХреБрд▓ рд╣рд┐рд╕реНрд╕рд╛ рдХреНрдпреЛрдВ? рдХреНрдпреЛрдВрдХрд┐ рд╕реВрдЪрдирд╛рдПрдВ рд░рдирд┐рдВрдЧ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЗ рд╕рд╛рде рднреА рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддреА рдереАрдВред рдХрднреА-рдХрднреА рдХреБрдЫ рд╕рдордп (20-40 рдорд┐рдирдЯ) рдХреЗ рдмрд╛рдж рд╕реВрдЪрдирд╛рдУрдВ рдХреА рд▓рд╣рд░реЗрдВ рдЖрддреА рдереАрдВ, рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рдереАрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдордп рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рдерд╛ред

рдирддреАрдЬрддрди, рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдХрдИ рдордВрдЪреЛрдВ рдФрд░ рдХреНрдпреВ рдПрдВрдб рдП рдХреЛ рдкрдврд╝рдирд╛, рд╕рднреА рдПрдХ рдмрд╛рдд рдкрд░ рд╕рд╣рдордд рд╣реБрдП - рд╣рдо рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЪреИрдирд▓ рдХрд░реЗрдВрдЧреЗред

4. Google C2DM рд╡рд┐рдХрд▓реНрдк , рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдирд╣реАрдВ


рдореБрдЦреНрдп рд╕рд╡рд╛рд▓: рдПрдХ рд╕реНрдерд┐рд░ рд╕рд░реНрд╡рд░-рдХреНрд▓рд╛рдЗрдВрдЯ рдЪреИрдирд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд░реЗрдВ?
рдПрдХ рдкрдХреНрд╖ рдХрд╛ рд╕рд╡рд╛рд▓: рдЗрд╕ рдЪреИрдирд▓ рдХреЗ рд╕рд╛рде рдкреВрд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдмреИрдЯрд░реА рдХреИрд╕реЗ рдирд╣реАрдВ рдЦрд╛рдПрдВ?

рдкреНрд░реЗрд░рдгрд╛ рдХрд╛ рд╕реНрд░реЛрдд http://code.google.com/p/android-random/ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдереЗред
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЙрджрд╛рд╣рд░рдг KeepAliveService рд╣реИ ред

рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ рдПрдХ рд▓рд▓рд╛рдЯ рд╕рдорд╛рдзрд╛рди рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдПрди рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж, рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓реЗрдВ рдФрд░ рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░реЗрдВред
"рд╕рд░реНрд╡рд░ рдХреЛ рдЕрдХреНрд╕рд░ рдХреНрд╡реЗрд░реА" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╣реЗрдб-рдСрди рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрдЬрд╛рдп, рд▓реЗрдЦрдХ рдПрдХ рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рддрд░рд╣ рдХрд╛ рд╣реИрдХ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рдЪрд┐рдкреНрд╕:


рдореИрдВрдиреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред
2 рдЧреНрд░рд╛рд╣рдХ рд▓рд┐рдЦреЗ рдЧрдП рдереЗ:
  1. рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рд░ рдПрди рд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рдмрд╛рд░ рдЦреЛрд▓рд╛ рдФрд░ рдкрдврд╝рд╛ рдХрд┐ рдХреНрдпрд╛ рдХреБрдЫ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдерд╛ред рдпрд╣ n рдерд╛ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╡рд┐рд╡рд┐рдз рдерд╛
  2. рдореИрдВрдиреЗ рдПрдХ рд╕реНрдерд╛рдпреА рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓рд╛ рдФрд░ рдЗрд╕реЗ рд╣рд░ 60 рд╕реЗрдХрдВрдб рдореЗрдВ рдЬрд╛рдВрдЪрд╛ред рдЬреАрд╡рди рдХреЗ рд╕рдордп рдХрд┐рддрдиреЗ рдЕрд▓рдЧ рд╣реИрдВ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рд╡рд┐рд╡рд┐рдз рд╣реИрдВред

рдкрд╣рд▓рд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рджреВрд╕рд░реЗ рдХреА рд╕рднреА рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рдЗрд╕рдореЗрдВ рджреВрд╕рд░реЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рдПрдХ рд╕рд░реНрд╡рд░ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЙрдЧ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рднреА рдореБрдЦреНрдп рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдордЭ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдПрдХ рдорд┐рдирдЯ рдореЗрдВ рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рднреА рднреЗрдЬрддрд╛ рд╣реИред рдорд╛рд╡реЗрди рджреНрд╡рд╛рд░рд╛ рд╕рдм рдХреБрдЫ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб-рдорд╛рд╡реЗрди-рдкреНрд▓рдЧрдЗрди рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред

рдЧреНрд░рд╛рд╣рдХ 1рдЧреНрд░рд╛рд╣рдХ реи
рдпреБрдХреНрддрд┐рдЗрдЪреНрдЫрд╛рдЗрдЪреНрдЫрд╛рдЗрдЪреНрдЫрд╛рдЗрдЪреНрдЫрд╛рдЗрдЪреНрдЫрд╛рдЬрдВрдЧрд▓ рдХреА рдЖрдЧрдЗрдЪреНрдЫрд╛ s
рдкрд░реАрдХреНрд╖рдг рдЕрд╡рдзрд┐ (рдорд┐рдирдЯ)5401273845962111711801121
рдЪрд╛рд░реНрдЬ рдпреВрдирд┐рдЯреНрд╕8287319398049
рд╕реЗрдХреЗрдВрдб рдореЗрдВ рд░рдЦреЗрдВ10306060606060
рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди3 рдЬреА3 рдЬреА3 рдЬреАрд╡рд╛рдИрдлрд╝рд╛рдИ3 рдЬреА3 рдЬреА3 рдЬреА
рдкрд░рд┐рдХрд▓рд┐рдд рдирд┐рд░реНрд╡рд╣рди рджрд░ (e.z./h)104.282.220.562.224.283

рдИред рдореЗрдВ рдмреИрдЯрд░реА рдбрд┐рд╕реНрдЪрд╛рд░реНрдЬ рдкреНрд░рддрд┐ рдШрдВрдЯреЗ

рдХрдИ рдкрд░рд┐рдгрд╛рдо рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ:
  1. рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛, рдХрдо рд╕реЗ рдХрдо рдЗрд╕реЗ рдЦреБрд▓рд╛ рд░рдЦрдирд╛ - рдпрд╣ рдмреИрдЯрд░реА рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред
  2. 3 рдЬреА рд╡рд╛рдИрдлрд╛рдИ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреИрдЯрд░реА рдХреЛ рдХрдИ рдЧреБрдирд╛ рддреЗрдЬ рдЬрд▓рд╛ рджреЗрддрд╛ рд╣реИред
  3. рдЗрд╖реНрдЯрддрдо рдорддрджрд╛рди рдХрд╛ рд╕рдордп 60 рд╕реЗрдХрдВрдб рд╣реИред

рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд╣рд▓рд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрдирдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рджреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЧреНрд░рд╛рд╣рдХ (рдирдВрдмрд░ 1) рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рддреНрдпрд╛рдкрди рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдЖрддреА рд╣реИред рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдЬреЛ рдПрдХ рдХрдиреЗрдХреНрд╢рди (рдирдВрдмрд░ 2) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрдм рд╕рд░реНрд╡рд░ рдПрдХ рдЦреБрд▓реЗ рдХрдиреЗрдХреНрд╢рди рдкрд░ рд▓рд┐рдЦрддрд╛ рд╣реИ рддреЛ рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдБ рдХрд┐ рдЬрдм рд╕рд░реНрд╡рд░ рд╕реЗ рдХреЛрдИ рд╕рдВрджреЗрд╢ рдЦреБрд▓реЗ рдХрдиреЗрдХреНрд╢рди рдкрд░ рдЖрддрд╛ рд╣реИ, рддрдм рднреА рдПрдХ рдиреАрдВрдж рдЖрдиреЗ рд╡рд╛рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ рдЬрд╛рдЧ рдЬрд╛рддреА рд╣реИред

рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдХреА рдЖрдордж рдХреЛ рдЭреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ред
рдЦреБрдж рдХреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕рд░реНрд╡рд░

рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕рд░реНрд╡рд░ рдореЗрдВ рджреЛ рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ:

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╕рднреА рдЗрдВрдЯрд░реИрдХреНрд╢рди рд╢реБрджреНрдз рдЯреАрд╕реАрдкреА рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕реНрд╡рдпрдВ рдХрд┐рд╕реА рднреА рдЖрдХрд╛рд░ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рд▓реЛрдб рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рдмрд╛рдЗрдЯ "1" рднреЗрдЬрддрд╛ рд╣реВрдВред
рд╕рд░реНрд╡рд░ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ, рд╕реНрдкреНрд░рд┐рдВрдЧ рд░реАрдореЛрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрд░рдПрдордЖрдИ рдХрдиреЗрдХреНрд╢рди рдмрдврд╝рддреЗ рд╣реИрдВред

рдЕрдм рдЪрд░рдгреЛрдВ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рд▓реЙрдЬрд┐рдХ рджреЗрдЦрддреЗ рд╣реИрдВред

  1. рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░, рдЧреНрд░рд╛рд╣рдХ рдЕрдкрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ GUID рд╣реИ ред
  2. рдЬрд╡рд╛рдм рдореЗрдВ, рд╡рд╣ рдкрддрд╛ рдФрд░ рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓рдирд╛ рдФрд░ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реИред
  3. рд╕реЙрдХреЗрдЯ рдЦреЛрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдХ рд░реАрдбрдЖрдЙрдЯ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдмреНрд▓реЙрдХрд┐рдВрдЧ рд░реАрдб рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИред
  4. рдЕрд▓рд╛рд░реНрдо рдореИрдирдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЧреНрд░рд╛рд╣рдХ рд╣рд░ 60 рд╕реЗрдХрдВрдб рдореЗрдВ рдЙрдарддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ GUID рдХреЗ рд╕рд╛рде рдПрдХ рдЦреБрд▓реЗ рдХрдиреЗрдХреНрд╢рди рдкрд░ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред рддреЛ рд╕рд░реНрд╡рд░ рдХреЛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрднреА рднреА рдЬреАрд╡рд┐рдд рд╣реИред
  5. рдпрджрд┐ рдХрдиреЗрдХреНрд╢рди рдЧрд┐рд░рддрд╛ рд╣реИ, рддреЛ рдЧреНрд░рд╛рд╣рдХ рдЗрдВрдЯрд░рдиреЗрдЯ рддрдХ рдХрд┐рд╕реА рднреА рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЙрдкрд▓рдмреНрдз рд╣реЛ, рддреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  6. рдпрджрд┐ рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЖ рдЧрдИ рд╣реИ, рдЬреЛ рдХрд┐ рд╢реЗрд╖ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдХреЛ рдмрддрд╛рдИ рдЧрдИ рд╣реИ, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдлрд┐рд░ рд╕реЗ рдмреНрд▓реЙрдХрд┐рдВрдЧ рд░реАрдб рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИред


рдЕрд▓рд╛рд░реНрдо рдореИрдирдЬрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
 //  ,       Intent i = new Intent(this, NotificationService.class).setAction(ACTION_KEEPALIVE); PendingIntent pi = PendingIntent.getService(this, 0, i, 0); //      AlarmManager- AlarmManager alarmMgr = (AlarmManager) getSystemService(ALARM_SERVICE); alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + KEEP_ALIVE_INTERVAL, KEEP_ALIVE_INTERVAL, pi); 

рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред

рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдпрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ C2DM рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдЕрд╕рдВрднрд╡ рдХреНрдпреЛрдВ рд╣реИ




5. рдирд┐рд╖реНрдХрд░реНрд╖


"рдХрд┐рд╕реА рднреА рд╕реНрд╡рд╛рднрд┐рдорд╛рдиреА рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕реЗрд╡рд╛ рдХреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП" - рдпрд╣ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдореЗрд░реЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдордЬрд╛рдХ рдЙрдбрд╝рд╛рдпрд╛ред
рд▓реЗрдХрд┐рди рдордЬрд╛рдХ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕реЗрд╡рд╛ рдПрдХ рд╣реА рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдФрд░ рд▓рдЧрднрдЧ рдРрдкреНрдкрд▓ рдХреЗ рд╕рдорд╛рди рд╕реНрдерд┐рд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдирдиреНрджрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИ, рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЬреАрд╡рди рд╕рдордп, рдЬрд┐рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдмрд╣реБрдд рдЪрд┐рдВрддрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдмрд╣реБрдд рдХрдо рдирд╣реАрдВ рд╣реИред

6. рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ


рдЕрдЪреНрдЫреЗ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╡рд┐рддрд░рдг рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░
Google C2DM рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝
Habratopik "рд╣рдо рдХреНрд▓рд╛рдЙрдб рдЯреВ рдбрд┐рд╡рд╛рдЗрд╕ рдореИрд╕реЗрдЬрд┐рдВрдЧ (C2DM) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде Android рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ"
C2DM рдФрд░ рдЕрдиреНрдп рдХреА рдЧрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрддреЗрдВ - рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдПрдХ рджрд┐рди рдЙрдирдХрд╛ рдЬрд╡рд╛рдм тАЬрд╣реБрд░реНрд░реЗ! рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛! тАЭ

Source: https://habr.com/ru/post/In142045/


All Articles