рд╣рдо рдХреНрд▓рд╛рдЙрдб рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рдореИрд╕реЗрдЬрд┐рдВрдЧ (C2DM) рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде Android рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ



рд╣реЗрд▓реЛ рд░реАрдбрд░реНрд╕ рд╣рдмрд░рд╣рд╛рдм!

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

рд╣рд╛рд▓рд╛рдБрдХрд┐ C2DM Android рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рдореВрд▓рднреВрдд рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рд▓реЗрдХрд┐рди RuNet рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдЗрд╕ рдкрдж рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

рдХрдЯ рдХреЗ рддрд╣рдд, рдореИрдВ рдЖрдкрдХреЛ рд╕рд░рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдКрдВрдЧрд╛, рдХреБрдЫ "рдиреБрдХрд╕рд╛рди" рджрд┐рдЦрд╛рдКрдВрдЧрд╛, рдФрд░ рдирдореВрдирд╛ рдХреЛрдб рдХреЗ рд▓рд┐рдВрдХ рднреА рджреВрдВрдЧрд╛ред

рдбрд┐рд╡рд╛рдЗрд╕ рдореИрд╕реЗрдЬрд┐рдВрдЧ рдХреЛ рдХреНрд▓рд╛рдЙрдб


рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП, рдереЛрдбрд╝рд╛ рд╕рд┐рджреНрдзрд╛рдВрддред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ, рд╕реА 2 рдбреАрдПрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдПрдХ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рд╕реЗрд╡рд╛ рд╣реИ, рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдпрд╛рдиреА рдпрд╣ Apple рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреБрд╢ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдирд╛рд▓реЙрдЧ рд╣реИред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкрд╛рдИ рдЧрдИ рдЗрд╕ рддрд╕реНрд╡реАрд░ рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХреА рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдЖрд░реЗрдЦ рд╕реЗ рддреАрди рдореБрдЦреНрдп рднрд╛рдЧ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ:
  1. C2DM рд╕реЗрд╡рд╛ред рд╕рдВрджреЗрд╢ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП Google рдХрд╛ рдХреНрд▓рд╛рдЙрдбред рд╕рд╛рде рд╣реА рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдкрдВрдЬреАрдХрд░рдг / рдкреБрдирдГ рдкрдВрдЬреАрдХрд░рдгред
  2. рдЧреНрд░рд╛рд╣рдХ рднрд╛рдЧред рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред
  3. рд╕рд░реНрд╡рд░ рднрд╛рдЧред рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ ("рддреГрддреАрдп рдкрдХреНрд╖ рд╕рд░реНрд╡рд░" Google рд╢рдмреНрджреЛрдВ рдореЗрдВ) рдЬреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред
рд╕рдВрджреЗрд╢ рдкрд╛рд╕рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЙрд╕ рд▓рд┐рдВрдХ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрджреНрдзреГрдд рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
  1. рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди C2DM рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдкрдиреА рддрддреНрдкрд░рддрд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдПрдХ рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЬрд╛рдирдХрд░, рд╕рд░реНрд╡рд░ рднрд╛рдЧ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИред рдкрдВрдЬреАрдХрд░рдг рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ Google рдЦрд╛рддреЗ рдХрд╛ рдирд╛рдо рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдж рдореЗрдВ рд▓рд┐рдЦреВрдВрдЧрд╛ рдЬрдм рдореИрдВ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ред
  2. рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЗ рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рдХрд┐рд╕рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рд╕рдВрднрд╡ рд╣реИред
  3. рд╕рд░реНрд╡рд░ рднрд╛рдЧ рдХреЛ Google рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдзрд┐рдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, C2DM рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдХрд░рддреЗ рд╕рдордп рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдорд╛рди рдЦрд╛рддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдФрд░ рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред Google рдХреА рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг \ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ ред
  4. рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдФрд░ рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдЯреЛрдХрди рдХреЛ рдЬрд╛рдирдХрд░, рд╕рд░реНрд╡рд░ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред
рдЕрдм рдЖрдк рд╕реАрдзреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ (Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди) рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдЧреНрд░рд╛рд╣рдХ рднрд╛рдЧ


C2DM Android рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
  1. рдпрд╣ Android 2.2 рдпрд╛ рдЙрдЪреНрдЪрддрд░ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░, C2DM рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ!
  2. рдХрд┐рд╕реА рднреА рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ Google рдХрд╛ рдЦрд╛рддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ Android Market рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реИред
рдпрджрд┐ рд╕рдм рдХреБрдЫ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдо рдЧреНрд░рд╣рдг + рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЖрдк TextView рдкрд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ "рд╣реИрд▓реЛ, рд╡рд░реНрд▓реНрдб" рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдпрд╛ рдпрд╣рд╛рдВ ред рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:


рдиреЛрдЯ: рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ Android 2.2 рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдорд╛рдирдХ SDK рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди Google API (API 8 рдпрд╛ рдЙрдЪреНрдЪрддрд░), рдХреНрдпреЛрдВрдХрд┐ рдорд╛рдирдХ рдПрд╕рдбреАрдХреЗ рдореЗрдВ Google рдЦрд╛рддреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред

рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдЗрдЯ рдкрд░ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо (рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, Google рдХрд╛ рдореЗрд▓ рдЦрд╛рддрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдореЗрд▓ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдПрдХ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдИрдореЗрд▓ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕ рдкрддреНрд░ рдХреЗ рдмрд╛рдж рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЦрд╛рддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ C2DM рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЧрд▓рд╛, рд╣рдо рдЕрдкрдиреЗ "рд╣реИрд▓реЛ, рд╡рд░реНрд▓реНрдб!" рдПрдкреНрд▓реАрдХреЗрд╢рди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг / рдбреЗрд░реЗрдЧреЗрдЬреЗрд╢рди рдФрд░, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХреЛрдб рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдХреЗ рдмрд╛рдж рд╕реЗ рдЦреБрдж рдХреЛ рд▓рд┐рдЦрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рд╕рднреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, Google рдХреЛ рд╣реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред Svn рд╕реНрдЯреЛрд░реЗрдЬ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдкрд░ C2DM рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рддреИрдпрд╛рд░ рд╕реЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдФрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ " src \ com \ google \ android \ c2dm " рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ ред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:


рдЕрдм рд╣рдореЗрдВ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ C2DMBaseReceiver рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рд╡рд░реНрдЧ C2DMReceiver рд▓рд┐рдЦреЗрдВрдЧреЗ, рдЬрдмрдХрд┐ рдХреЗрд╡рд▓ рд▓реЙрдЧрд┐рдВрдЧ рдХреЙрд▓, рдФрд░ рдЗрд╕реЗ рдореЗрди рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд░рдЦреЗрдВред C2DMReceiver рд╡рд░реНрдЧ рдХреА рд╕рд╛рдордЧреНрд░реА:
  1. рдкреИрдХреЗрдЬ com.home.c2dmtest ;
  2. рдЖрдпрд╛рдд com.google.android.c2dm.C2DMBaseReceiver ;
  3. рдЖрдпрд╛рдд android.app.Notification ;
  4. рдЖрдпрд╛рдд android.app.NotificationManager ;
  5. рдЖрдпрд╛рдд android.app.PendingIntent ;
  6. рдЖрдпрд╛рдд android.content.Context ;
  7. рдЖрдпрд╛рдд android.content.ntent ;
  8. import android.util.Log ;
  9. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ C2DMReceiver рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ C2DMBaseReceiver {
  10. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ C2DMReceiver ( ) {
  11. рд╕реБрдкрд░ ( "<yourmail> @ gmail.com" ) ;
  12. }
  13. @ рдУрд╡рд░рд░рд╛рдЗрдб
  14. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onRegistered ( рд╕рдВрджрд░реНрдн рдкреНрд░рд╕рдВрдЧ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрдВрдЬреАрдХрд░рдг Id ) {
  15. рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред w ( "onRegistered" , registrationId ) ;
  16. }
  17. @ рдУрд╡рд░рд░рд╛рдЗрдб
  18. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onUnregistered ( рд╕рдВрджрд░реНрдн рдкреНрд░рд╕рдВрдЧ ) {
  19. рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред w ( "onUnregistered" , "" ) ;
  20. }
  21. @ рдУрд╡рд░рд░рд╛рдЗрдб
  22. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onError ( рд╕рдВрджрд░реНрдн рдкреНрд░рд╕рдВрдЧ, рд╕реНрдЯреНрд░рд┐рдВрдЧ errorId ) {
  23. рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред w ( "onError" , errorId ) ;
  24. }
  25. @ рдУрд╡рд░рд░рд╛рдЗрдб
  26. рд╕рдВрд░рдХреНрд╖рд┐рдд рд╢реВрдиреНрдп onMessage ( рд╕рдВрджрд░реНрдн рд╕рдВрджрд░реНрдн, рдЖрд╢рдп рдЕрднрд┐рдкреНрд░рд╛рдп ) {
  27. рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред рдбрдмреНрд▓реНрдпреВ ( "рдСрдирдореИрд╕реЗрдЬ" , "" ) ;
  28. }
  29. }

рд▓реЗрдХрд┐рди рдЖрд╡реЗрджрди рдЕрднреА рддрдХ C2DM рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрд╡рд╢реНрдпрдХ рдЕрдзрд┐рдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯрд╕реАрд╡рд░ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ AndroidManifest.xml рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рдХреИрд╕реЗ рдХрд░реЗрдВ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
  1. <? xml рд╕рдВрд╕реНрдХрд░рдг = "1.0" рдПрдиреНрдХреЛрдбрд┐рдВрдЧ = "utf-8" ?>
  2. <рдкреНрд░рдХрдЯ xmlns: android = " schemas.android.com/apk/res/android"
  3. Android: versionCode = "1"
  4. Android: versionName = "1.0" рдкреИрдХреЗрдЬ = "com.home.c2dmtest" >
  5. <рдЖрд╡реЗрджрди
  6. Android: рдбреАрдмрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп = "рд╕рддреНрдп"
  7. Android: рд▓реЗрдмрд▓ = "@ рд╕реНрдЯреНрд░рд┐рдВрдЧ / app_name" >
  8. <рдЧрддрд┐рд╡рд┐рдзрд┐ Android: рдирд╛рдо = "рдореБрдЦреНрдп"
  9. Android: рд▓реЗрдмрд▓ = "@ рд╕реНрдЯреНрд░рд┐рдВрдЧ / app_name"
  10. Android: theme = "@android: style / Theme.NoTitleBar" >
  11. <рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
  12. <рдХрд╛рд░реНрд░рд╡рд╛рдИ Android: рдирд╛рдо = "android.intent.action.MAIN" />
  13. <рд╢реНрд░реЗрдгреА Android: рдирд╛рдо = "android.intent.category.LAUNCHER" />
  14. </ рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
  15. </ рдЧрддрд┐рд╡рд┐рдзрд┐ >
  16. <рд╕реЗрд╡рд╛ Android: name = ".C2DMReceiver" />
  17. <рд░рд┐рд╕реАрд╡рд░
  18. Android: name = "com.google.android.c2dm.C2DMBroadcastReceiver"
  19. Android: рдЕрдиреБрдорддрд┐ = "com.google.android.c2dm.permission.SEND" >
  20. <рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
  21. < Action android: name = "com.google.android.c2dm.intent.RECEIVE" />
  22. <рд╢реНрд░реЗрдгреА Android: рдирд╛рдо = "com.home.c2dmtest" />
  23. </ рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
  24. <рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
  25. < Action android: name = "com.google.android.c2dm.intent.REGISTRATION" />
  26. <рд╢реНрд░реЗрдгреА Android: рдирд╛рдо = "com.home.c2dmtest" />
  27. </ рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
  28. </ рд░рд┐рд╕реАрд╡рд░ >
  29. </ рдЕрдиреБрдкреНрд░рдпреЛрдЧ >
  30. <рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ- sdk Android: minSdkVersion = "8" />
  31. <рдЕрдиреБрдорддрд┐
  32. Android: name = "com.home.c2dmtest.permission.C2D_MESSAGE"
  33. Android: protectionLevel = "рд╣рд╕реНрддрд╛рдХреНрд╖рд░" />
  34. <рдЙрдкрдпреЛрдЧ-рдЕрдиреБрдорддрд┐ android: рдирд╛рдо = "com.home.c2dmtest.permission.C2D_MESSAGE" >
  35. <рдЙрдкрдпреЛрдЧ-рдЕрдиреБрдорддрд┐ android: рдирд╛рдо = "com.google.android.c2dm.permission.RECEIVE" />
  36. <рдЙрдкрдпреЛрдЧ-рдЕрдиреБрдорддрд┐ Android: рдирд╛рдо = "android.permission.INTERNET" />
  37. <рдЙрдкрдпреЛрдЧ-рдЕрдиреБрдорддрд┐ рдПрдВрдбреНрд░реЙрдЗрдб: рдирд╛рдо = "android.permission.WAKE_LOCK" />
  38. </ рдкреНрд░рдХрдЯреАрдХрд░рдг >

рдиреЛрдЯ: C2DM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА android.permission.WAKE_LOCK рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рджреЛ рдмрд╛рд░ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдЕрдм рдЖрдк C2DM рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо OnCreate рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╣рддреЗ рд╣реИрдВ:
C2DMessagingред рд░рдЬрд┐рд╕реНрдЯрд░ ( рдпрд╣ , "<yourmail> @ gmail.com" ) ;

рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд░рд╣рд╛, рддреЛ рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдПрдХ рдирдИ рдкреБрдирд░реНрд╕рдВрд░рдЪрдирд╛ рдЖрдИрдбреА C2DMReceiver рд╡рд░реНрдЧ рдХреЗ рдСрдирд░рдЬрд┐рд╕реНрдЯрд░реНрдб рд╡рд┐рдзрд┐ рдореЗрдВ рдЖ рдЬрд╛рдПрдЧреАред рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрдХрдЯ рдХреЗ рд▓реЙрдЧ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЖрдк рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЕрдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
C2DMessagingред рдЕрдкрдВрдЬреАрдХреГрдд ( рдпрд╣ ) ;

рд╡рд░реНрддрдорд╛рди рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрдИрдбреА = C2DMessagingред getRegademyId ( рдпрд╣ ) ;

рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдХрд┐рд╕реА рднреА рд╕реЗрдХрдВрдб рдореЗрдВ рдмрджрд▓ рд╕рдХрддреА рд╣реИ, рдЕрд░реНрдерд╛рдд Google рдЗрд╕реЗ рдПрдХ рдирдпрд╛ рдЕрд░реНрде рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рддрдВрддреНрд░ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд░реНрдЧ C2DMBaseReceiver рдкрджреНрдзрддрд┐ рдореЗрдВ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

рдЕрдВрддрд┐рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:


рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрдзрд┐рдХ рджреГрд╢реНрдп рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред рдЬрдм рдХреЛрдИ рдирдпрд╛ рд╕рдВрджреЗрд╢ рдЖрддрд╛ рд╣реИ, рддреЛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдФрд░ рдЬрдм рдЗрд╕реЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд╛рда рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдЧрд╛ред

рдареАрдХ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо onMessage рдХреЛрдб рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
  1. @ рдУрд╡рд░рд░рд╛рдЗрдб
  2. рд╕рдВрд░рдХреНрд╖рд┐рдд рд╢реВрдиреНрдп onMessage ( рд╕рдВрджрд░реНрдн, рдЖрд╢рдп рдкреНрд░рд╛рдкреНрдд )
  3. {
  4. рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ = ReceIntentред getStringExtra ( "рд╕рдВрджреЗрд╢" ) ;
  5. рдЕрдЧрд░ ( рдбреЗрдЯрд╛ ! = null )
  6. {
  7. рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред w ( "C2DMReceiver" , рдбреЗрдЯрд╛ ) ;
  8. рдЖрд╢рдп рдЕрднрд┐рдкреНрд░рд╛рдп = рдирдпрд╛ рдЖрд╢рдп ( рдпрд╣ , рдореБрдЦреНрдп рд╡рд░реНрдЧ ) ;
  9. рдЖрд╢рдпред putExtra ( "рд╕рдВрджреЗрд╢" , рдбреЗрдЯрд╛ ) ;
  10. рд╕реВрдЪрдирд╛ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдмрдВрдзрдХ = ( рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рдмрдВрдзрдХ )
  11. getSystemService ( рд╕рдВрджрд░реНрдн ред NOTIFICATION_SERVICE ) ;
  12. рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ = рдирдпрд╛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ ( androidред рдЖрд░ ред рдбреНрд░рд╛рдПрдмрд▓ ред Ic_dialog_info )
  13. "рдорд╛рдп рд╕реА 2 рдбреАрдПрдо рд╕рдВрджреЗрд╢" , рд╕рд┐рд╕реНрдЯрдо ред currentTimeMillis ( ) ) ;
  14. рдЕрдзрд┐рд╕реВрдЪрдирд╛ред setLatestEventInfo ( рд╕рдВрджрд░реНрдн, "рдРрдк рдирд╛рдо" , "C2DM рдЕрдзрд┐рд╕реВрдЪрдирд╛" ,
  15. PendingIntentред getActivity ( рдпрд╣ ред getBaseContext ( ) , 0 ,
  16. рдЖрд╢рдп, рд▓рдВрдмрд┐рддред FLAG_CANCEL_CURRENT ) ) ;
  17. mManagerред рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ ( 0 , рдЕрдзрд┐рд╕реВрдЪрдирд╛ ) ;
  18. }
  19. }

рд╕рдВрджреЗрд╢ рдЙрд╕ рд╕рдВрджреЗрд╢ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ рдЬреЛ рд╕рд░реНрд╡рд░ рднреЗрдЬрддрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдирдП рдЖрд╢рдп рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ, рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рд╣рдо рдЗрд╕реЗ рдореЗрди рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рдкреНрд░реЗрд╖рд┐рдд рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:
  1. @ рдУрд╡рд░рд░рд╛рдЗрдб
  2. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onCreate ( рдмрдВрдбрд▓ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛
  3. рд╕реБрдкрд░ ред onCreate ( saveInstanceState ) ;
  4. TextView рджреЗрдЦреЗрдВ = рдирдпрд╛ TextView ( рдпрд╣ ) ;
  5. рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрджреЗрд╢ = getIntent ( ) ред getStringExtra ( "рд╕рдВрджреЗрд╢" ) ;
  6. рдЕрдЧрд░ ( рд╕рдВрджреЗрд╢ == рдЕрд╢рдХреНрдд )
  7. рджреЗрдЦрдиреЗред рд╕реЗрдЯрдЯреЗрдХреНрд╕реНрдЯ ( "рд╣реИрд▓реЛ, рд╡рд░реНрд▓реНрдб !!!" ) ;
  8. рдЕрдиреНрдпрдерд╛
  9. рджреЗрдЦрдиреЗред setText ( "рдЖрдкрдХрд╛ рд╕рдВрджреЗрд╢:" + рд╕рдВрджреЗрд╢ ) ;
  10. setContentView ( рджреЗрдЦреЗрдВ ) ;
  11. рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрдИрдбреА = C2DMessagingред getRegademyId ( рдпрд╣ ) ;
  12. рдЕрдЧрд░ ( рдЖрдИрдбреА == "" )
  13. {
  14. C2DMessagingред рд░рдЬрд┐рд╕реНрдЯрд░ ( рдпрд╣ , "<yourmail> @ gmail.com" ) ;
  15. }
  16. }

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

рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб


рдкрд╣рд▓рд╛ рдХрджрдо рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдЗрд╕ рдмреНрд▓реЙрдЧ рдкрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ (рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рднреА рд╣реИ)ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рд╕рдм рдХреБрдЫ рд░реВрд╕реА рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рджреЛрд╣рд░рд╛рдПрдВрдЧреЗ рдирд╣реАрдВ рдФрд░ рд╣рдо рдорд╛рди рд▓реЗрдВрдЧреЗ рдХрд┐ рд╣рдордиреЗ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред

рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Registration ID рдФрд░ Auth рдЯреЛрдХрди рд╣реИред рдЫреЛрдЯреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдорд▓рд╛, рдЖрдкрдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рджреЗрдирд╛ рд╣реЛрдЧрд╛ред рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдпрд╣ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред

рд╣рдореЗрдВ Google рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕рд╣реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВред рдФрд░ рд╡рд╣ рд╕рдм рд╣реИред рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
  1. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди sendData (
  2. рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдХреНрдЯреЛрдХреЗрди,
  3. рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрдВрдЬреАрдХрд░рдг,
  4. рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрддрди,
  5. рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬреА,
  6. рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореВрд▓реНрдп )
  7. IOException { рдлреЗрдВрдХрддрд╛ рд╣реИ
  8. // рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рд╕реЗрдЯ рдХрд░реЗрдВ
  9. StringBuilder postDataBuilder = рдирдпрд╛ StringBuilder ( ) ;
  10. postDataBuilderред append ( "registration_id" ) ред
  11. append ( "=" ) ред рдкрд░рд┐рд╢рд┐рд╖реНрдЯ ( рдкрдВрдЬреАрдХрд░рдг ) ;
  12. // рд╕реЗрдЯ рдкрддрди_рдХреА - рд╕рдореВрд╣ рд╕рдВрджреЗрд╢ рдпрджрд┐ рдкрддрди рдХреБрдВрдЬреА рд╕рдорд╛рди рд╣реИ, рдФрд░
  13. // рдбрд┐рд╡рд╛рдЗрд╕, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛,
  14. // рд▓реЗрдХрд┐рди рд╕рднреА рдПрдХ рдмрд╛рд░ рдореЗрдВ рдирд╣реАрдВред
  15. postDataBuilderред рдкрд░рд┐рд╢рд┐рд╖реНрдЯ ( "рдФрд░" ) ред рдкрд░рд┐рд╢рд┐рд╖реНрдЯ ( "рдкрддрди_рдХреА" ) ред append ( "=" ) ред
  16. рдЙрдкрд╛рдВрдЧ ( рдкрддрди ) ;
  17. // рдкреНрд░реЗрд╖рд┐рдд рддрд┐рдерд┐, рдкреНрд░рд╛рд░реВрдк <dataред> <Key> = <value> рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
  18. postDataBuilderред рдкрд░рд┐рд╢рд┐рд╖реНрдЯ ( "рдФрд░" ) ред append ( "рдбреЗрдЯрд╛ред" + рдХреБрдВрдЬреА ) ред append ( "=" ) ред
  19. append ( URLEncoder ред рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛ ( рдореВрд▓реНрдп, "UTF-8" ) ) ;
  20. рдмрд╛рдЗрдЯ [ ] рдкреЛрд╕реНрдЯрдбреЗрдЯрд╛ = рдкреЛрд╕реНрдЯрдбреИрдЯрд╛рдмреБрд░реНрдЯрд▓ред .String ( ) getBytes ( "UTF-8" ) ;
  21. URL url = рдирдпрд╛ URL ( " android.clients.google.com/c2dm/send" ) ;
  22. // рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯ рдХрд░реЗрдВ
  23. // рдкреНрд░реЙрдХреНрд╕реА рдкреНрд░реЙрдХреНрд╕реА = рдирдпрд╛ рдкреНрд░реЙрдХреНрд╕реА (Proxy.Type.HTTP, рдирдпрд╛ InetSocketAddress ("lazerboy.local", 8080));
  24. HttpsURLConnection рдХреЙрди = ( HttpsURLConnection ) urlред openConnection ( / * рдкреНрд░реЙрдХреНрд╕реА * / ) ;
  25. Connред setDoOutput ( рд╕рдЪ ) ;
  26. Connред setHostnameVerifier ( рдпрд╣ рдирдпрд╛ MyHostnameVerifier ( ) ) ;
  27. Connред setRequestMethod ( "POST" ) ;
  28. Connред setRequestProperty ( "рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░" )
  29. "рдЖрд╡реЗрджрди / x-www-form-urlencoded; рдЪрд╛рд░рд╕реЗрдЯ = UTF-8" ) ;
  30. Connред setRequestProperty ( "рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ" , рдкреВрд░реНрдгрд╛рдВрдХ ред рд╕реНрдЯреНрд░рд┐рдВрдЧ ( рдкреЛрд╕реНрдЯрдбреЗрдЯрд╛ред рд▓рдВрдмрд╛рдИ ) ) ;
  31. Connред setRequestProperty ( "рдкреНрд░рд╛рдзрд┐рдХрд░рдг" , "GoogleLogin Ord =" + AndorToken ) ;
  32. рдЖрдЙрдЯрдкреБрдЯрд╕реНрдЯреНрд░реАрдо рдЖрдЙрдЯ = рдХреЙрдиред getOutputStream ( ) ;
  33. рдмрд╛рд╣рд░ред рд▓рд┐рдЦрдирд╛ ( рдкреЛрд╕реНрдЯрдбреЗрдЯрд╛ ) ;
  34. рдмрд╛рд╣рд░ред рдХрд░реАрдм ( ) ;
  35. // рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
  36. int responseCode = рдХреЙрдиред getResponseCode ( ) ;
  37. if ( responseCode == HttpServletResponseред SC_UNAUTHORIZED ||
  38. responseCode == HttpServletResponseред SC_FORBIDDEN ) {
  39. рдкреНрд░рдгрд╛рд▓реАред рдмрд╛рд╣рд░ ред рдкреНрд░рд┐рдВрдЯрдл ( "рдЕрдирдзрд┐рдХреГрдд - рдЯреЛрдХрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ" ) ;
  40. рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;
  41. }
  42. рдЕрдЧрд░ ( responseCode == HttpServletResponseред SC_OK )
  43. {
  44. рдкреНрд░рдгрд╛рд▓реАред рдмрд╛рд╣рд░ ред рдкреНрд░рд┐рдВрдЯрдл ( "рдбреЗрдЯрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рднреЗрдЬрд╛ рдЧрдпрд╛!" ) ;
  45. рд╕рдЪ рд▓реМрдЯрдирд╛ ;
  46. }
  47. рдкреНрд░рдгрд╛рд▓реАред рдмрд╛рд╣рд░ ред рдкреНрд░рд┐рдВрдЯрдл ( "рдХреБрдЫ рдЧрд▓рдд, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдВрджреЗрд╢:" , рдХреЙрдиред getResponseMessage ( ) ) ;
  48. рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;
  49. }

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

рдпрджрд┐ рдХреЛрдб рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдорд╛рд░реЗ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЛ рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реВрдЪрдирд╛ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рджреЗрдЦреЗрдЧрд╛, рдФрд░ рдпрджрд┐ рд╡рд╣ рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рд╕рд░реНрд╡рд░ рд╕реЗ рдкрд╛рда рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдЧрд╛ред рд╣реБрд░реНрд░реЗ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдордиреЗ рдХреНрдпрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рд╣реИред

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


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

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

  1. рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрд╕реЗрдЬрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдВрдбреНрд░реЙрдЗрдб рдХреНрд▓рд╛рдЙрдб
  2. рд╡рд╣ рд╕реНрдерд╛рди рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ C2DM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦрд╛рддрд╛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
  3. C2DM рдФрд░ Android рдкрд░ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХрд╛ рдмреНрд▓реЙрдЧ
  4. рдЧреВрдЧрд▓ рд╕реЗ рдирдореВрдирд╛
  5. рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдФрд░ рдмреНрд▓реЙрдЧ
  6. C2DM рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг

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


All Articles