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

рдЖрд░реЗрдЦ рд╕реЗ рддреАрди рдореБрдЦреНрдп рднрд╛рдЧ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ:
- C2DM рд╕реЗрд╡рд╛ред рд╕рдВрджреЗрд╢ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП Google рдХрд╛ рдХреНрд▓рд╛рдЙрдбред рд╕рд╛рде рд╣реА рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдкрдВрдЬреАрдХрд░рдг / рдкреБрдирдГ рдкрдВрдЬреАрдХрд░рдгред
- рдЧреНрд░рд╛рд╣рдХ рднрд╛рдЧред рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред
- рд╕рд░реНрд╡рд░ рднрд╛рдЧред рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ ("рддреГрддреАрдп рдкрдХреНрд╖ рд╕рд░реНрд╡рд░" Google рд╢рдмреНрджреЛрдВ рдореЗрдВ) рдЬреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред
рд╕рдВрджреЗрд╢ рдкрд╛рд╕рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЙрд╕ рд▓рд┐рдВрдХ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрджреНрдзреГрдд рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди C2DM рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдкрдиреА рддрддреНрдкрд░рддрд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдПрдХ рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЬрд╛рдирдХрд░, рд╕рд░реНрд╡рд░ рднрд╛рдЧ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИред рдкрдВрдЬреАрдХрд░рдг рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ Google рдЦрд╛рддреЗ рдХрд╛ рдирд╛рдо рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдж рдореЗрдВ рд▓рд┐рдЦреВрдВрдЧрд╛ рдЬрдм рдореИрдВ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЗ рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рдХрд┐рд╕рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рд╕рдВрднрд╡ рд╣реИред
- рд╕рд░реНрд╡рд░ рднрд╛рдЧ рдХреЛ Google рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдзрд┐рдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, C2DM рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдХрд░рддреЗ рд╕рдордп рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдорд╛рди рдЦрд╛рддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдФрд░ рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред Google рдХреА рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг \ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ ред
- рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдФрд░ рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдЯреЛрдХрди рдХреЛ рдЬрд╛рдирдХрд░, рд╕рд░реНрд╡рд░ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред
рдЕрдм рдЖрдк рд╕реАрдзреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ (Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди) рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдЧреНрд░рд╛рд╣рдХ рднрд╛рдЧ
C2DM Android рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
- рдпрд╣ Android 2.2 рдпрд╛ рдЙрдЪреНрдЪрддрд░ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░, C2DM рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ!
- рдХрд┐рд╕реА рднреА рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ 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 рд╡рд░реНрдЧ рдХреА рд╕рд╛рдордЧреНрд░реА:
- рдкреИрдХреЗрдЬ com.home.c2dmtest ;
- рдЖрдпрд╛рдд com.google.android.c2dm.C2DMBaseReceiver ;
- рдЖрдпрд╛рдд android.app.Notification ;
- рдЖрдпрд╛рдд android.app.NotificationManager ;
- рдЖрдпрд╛рдд android.app.PendingIntent ;
- рдЖрдпрд╛рдд android.content.Context ;
- рдЖрдпрд╛рдд android.content.ntent ;
- import android.util.Log ;
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ C2DMReceiver рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ C2DMBaseReceiver {
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ C2DMReceiver ( ) {
- рд╕реБрдкрд░ ( "<yourmail> @ gmail.com" ) ;
- }
- @ рдУрд╡рд░рд░рд╛рдЗрдб
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onRegistered ( рд╕рдВрджрд░реНрдн рдкреНрд░рд╕рдВрдЧ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрдВрдЬреАрдХрд░рдг Id ) {
- рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред w ( "onRegistered" , registrationId ) ;
- }
- @ рдУрд╡рд░рд░рд╛рдЗрдб
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onUnregistered ( рд╕рдВрджрд░реНрдн рдкреНрд░рд╕рдВрдЧ ) {
- рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред w ( "onUnregistered" , "" ) ;
- }
- @ рдУрд╡рд░рд░рд╛рдЗрдб
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onError ( рд╕рдВрджрд░реНрдн рдкреНрд░рд╕рдВрдЧ, рд╕реНрдЯреНрд░рд┐рдВрдЧ errorId ) {
- рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред w ( "onError" , errorId ) ;
- }
- @ рдУрд╡рд░рд░рд╛рдЗрдб
- рд╕рдВрд░рдХреНрд╖рд┐рдд рд╢реВрдиреНрдп onMessage ( рд╕рдВрджрд░реНрдн рд╕рдВрджрд░реНрдн, рдЖрд╢рдп рдЕрднрд┐рдкреНрд░рд╛рдп ) {
- рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред рдбрдмреНрд▓реНрдпреВ ( "рдСрдирдореИрд╕реЗрдЬ" , "" ) ;
- }
- }
рд▓реЗрдХрд┐рди рдЖрд╡реЗрджрди рдЕрднреА рддрдХ C2DM рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрд╡рд╢реНрдпрдХ рдЕрдзрд┐рдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯрд╕реАрд╡рд░ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ AndroidManifest.xml рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рдХреИрд╕реЗ рдХрд░реЗрдВ рдЗрд╕реЗ
рдпрд╣рд╛рдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
- <? xml рд╕рдВрд╕реНрдХрд░рдг = "1.0" рдПрдиреНрдХреЛрдбрд┐рдВрдЧ = "utf-8" ?>
- <рдкреНрд░рдХрдЯ xmlns: android = " schemas.android.com/apk/res/android"
- Android: versionCode = "1"
- Android: versionName = "1.0" рдкреИрдХреЗрдЬ = "com.home.c2dmtest" >
- <рдЖрд╡реЗрджрди
- Android: рдбреАрдмрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп = "рд╕рддреНрдп"
- Android: рд▓реЗрдмрд▓ = "@ рд╕реНрдЯреНрд░рд┐рдВрдЧ / app_name" >
- <рдЧрддрд┐рд╡рд┐рдзрд┐ Android: рдирд╛рдо = "рдореБрдЦреНрдп"
- Android: рд▓реЗрдмрд▓ = "@ рд╕реНрдЯреНрд░рд┐рдВрдЧ / app_name"
- Android: theme = "@android: style / Theme.NoTitleBar" >
- <рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
- <рдХрд╛рд░реНрд░рд╡рд╛рдИ Android: рдирд╛рдо = "android.intent.action.MAIN" />
- <рд╢реНрд░реЗрдгреА Android: рдирд╛рдо = "android.intent.category.LAUNCHER" />
- </ рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
- </ рдЧрддрд┐рд╡рд┐рдзрд┐ >
- <рд╕реЗрд╡рд╛ Android: name = ".C2DMReceiver" />
- <рд░рд┐рд╕реАрд╡рд░
- Android: name = "com.google.android.c2dm.C2DMBroadcastReceiver"
- Android: рдЕрдиреБрдорддрд┐ = "com.google.android.c2dm.permission.SEND" >
- <рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
- < Action android: name = "com.google.android.c2dm.intent.RECEIVE" />
- <рд╢реНрд░реЗрдгреА Android: рдирд╛рдо = "com.home.c2dmtest" />
- </ рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
- <рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
- < Action android: name = "com.google.android.c2dm.intent.REGISTRATION" />
- <рд╢реНрд░реЗрдгреА Android: рдирд╛рдо = "com.home.c2dmtest" />
- </ рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
- </ рд░рд┐рд╕реАрд╡рд░ >
- </ рдЕрдиреБрдкреНрд░рдпреЛрдЧ >
- <рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ- sdk Android: minSdkVersion = "8" />
- <рдЕрдиреБрдорддрд┐
- Android: name = "com.home.c2dmtest.permission.C2D_MESSAGE"
- Android: protectionLevel = "рд╣рд╕реНрддрд╛рдХреНрд╖рд░" />
- <рдЙрдкрдпреЛрдЧ-рдЕрдиреБрдорддрд┐ android: рдирд╛рдо = "com.home.c2dmtest.permission.C2D_MESSAGE" >
- <рдЙрдкрдпреЛрдЧ-рдЕрдиреБрдорддрд┐ android: рдирд╛рдо = "com.google.android.c2dm.permission.RECEIVE" />
- <рдЙрдкрдпреЛрдЧ-рдЕрдиреБрдорддрд┐ Android: рдирд╛рдо = "android.permission.INTERNET" />
- <рдЙрдкрдпреЛрдЧ-рдЕрдиреБрдорддрд┐ рдПрдВрдбреНрд░реЙрдЗрдб: рдирд╛рдо = "android.permission.WAKE_LOCK" />
- </ рдкреНрд░рдХрдЯреАрдХрд░рдг >
рдиреЛрдЯ: C2DM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА android.permission.WAKE_LOCK рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рджреЛ рдмрд╛рд░ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛редрдЕрдм рдЖрдк C2DM рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо OnCreate рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╣рддреЗ рд╣реИрдВ:
C2DMessagingред рд░рдЬрд┐рд╕реНрдЯрд░ ( рдпрд╣ , "<yourmail> @ gmail.com" ) ;
рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд░рд╣рд╛, рддреЛ рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдПрдХ рдирдИ рдкреБрдирд░реНрд╕рдВрд░рдЪрдирд╛ рдЖрдИрдбреА C2DMReceiver рд╡рд░реНрдЧ рдХреЗ рдСрдирд░рдЬрд┐рд╕реНрдЯрд░реНрдб рд╡рд┐рдзрд┐ рдореЗрдВ рдЖ рдЬрд╛рдПрдЧреАред рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрдХрдЯ рдХреЗ рд▓реЙрдЧ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдк рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЕрдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
C2DMessagingред рдЕрдкрдВрдЬреАрдХреГрдд ( рдпрд╣ ) ;
рд╡рд░реНрддрдорд╛рди рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрдИрдбреА = C2DMessagingред getRegademyId ( рдпрд╣ ) ;
рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдХрд┐рд╕реА рднреА рд╕реЗрдХрдВрдб рдореЗрдВ рдмрджрд▓ рд╕рдХрддреА рд╣реИ, рдЕрд░реНрдерд╛рдд Google рдЗрд╕реЗ рдПрдХ рдирдпрд╛ рдЕрд░реНрде рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рддрдВрддреНрд░ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд░реНрдЧ C2DMBaseReceiver рдкрджреНрдзрддрд┐ рдореЗрдВ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред
рдЕрдВрддрд┐рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрдзрд┐рдХ рджреГрд╢реНрдп рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред рдЬрдм рдХреЛрдИ рдирдпрд╛ рд╕рдВрджреЗрд╢ рдЖрддрд╛ рд╣реИ, рддреЛ
рдЕрдзрд┐рд╕реВрдЪрдирд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдФрд░ рдЬрдм рдЗрд╕реЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд╛рда рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдЧрд╛ред
рдареАрдХ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо onMessage рдХреЛрдб рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
- @ рдУрд╡рд░рд░рд╛рдЗрдб
- рд╕рдВрд░рдХреНрд╖рд┐рдд рд╢реВрдиреНрдп onMessage ( рд╕рдВрджрд░реНрдн, рдЖрд╢рдп рдкреНрд░рд╛рдкреНрдд )
- {
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ = ReceIntentред getStringExtra ( "рд╕рдВрджреЗрд╢" ) ;
- рдЕрдЧрд░ ( рдбреЗрдЯрд╛ ! = null )
- {
- рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред w ( "C2DMReceiver" , рдбреЗрдЯрд╛ ) ;
- рдЖрд╢рдп рдЕрднрд┐рдкреНрд░рд╛рдп = рдирдпрд╛ рдЖрд╢рдп ( рдпрд╣ , рдореБрдЦреНрдп рд╡рд░реНрдЧ ) ;
- рдЖрд╢рдпред putExtra ( "рд╕рдВрджреЗрд╢" , рдбреЗрдЯрд╛ ) ;
- рд╕реВрдЪрдирд╛ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдмрдВрдзрдХ = ( рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рдмрдВрдзрдХ )
- getSystemService ( рд╕рдВрджрд░реНрдн ред NOTIFICATION_SERVICE ) ;
- рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ = рдирдпрд╛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ ( androidред рдЖрд░ ред рдбреНрд░рд╛рдПрдмрд▓ ред Ic_dialog_info )
- "рдорд╛рдп рд╕реА 2 рдбреАрдПрдо рд╕рдВрджреЗрд╢" , рд╕рд┐рд╕реНрдЯрдо ред currentTimeMillis ( ) ) ;
- рдЕрдзрд┐рд╕реВрдЪрдирд╛ред setLatestEventInfo ( рд╕рдВрджрд░реНрдн, "рдРрдк рдирд╛рдо" , "C2DM рдЕрдзрд┐рд╕реВрдЪрдирд╛" ,
- PendingIntentред getActivity ( рдпрд╣ ред getBaseContext ( ) , 0 ,
- рдЖрд╢рдп, рд▓рдВрдмрд┐рддред FLAG_CANCEL_CURRENT ) ) ;
- mManagerред рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ ( 0 , рдЕрдзрд┐рд╕реВрдЪрдирд╛ ) ;
- }
- }
рд╕рдВрджреЗрд╢ рдЙрд╕
рд╕рдВрджреЗрд╢ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ рдЬреЛ рд╕рд░реНрд╡рд░ рднреЗрдЬрддрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдирдП рдЖрд╢рдп рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ, рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рд╣рдо рдЗрд╕реЗ рдореЗрди рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рдкреНрд░реЗрд╖рд┐рдд рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:
- @ рдУрд╡рд░рд░рд╛рдЗрдб
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onCreate ( рдмрдВрдбрд▓ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛
- рд╕реБрдкрд░ ред onCreate ( saveInstanceState ) ;
- TextView рджреЗрдЦреЗрдВ = рдирдпрд╛ TextView ( рдпрд╣ ) ;
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрджреЗрд╢ = getIntent ( ) ред getStringExtra ( "рд╕рдВрджреЗрд╢" ) ;
- рдЕрдЧрд░ ( рд╕рдВрджреЗрд╢ == рдЕрд╢рдХреНрдд )
- рджреЗрдЦрдиреЗред рд╕реЗрдЯрдЯреЗрдХреНрд╕реНрдЯ ( "рд╣реИрд▓реЛ, рд╡рд░реНрд▓реНрдб !!!" ) ;
- рдЕрдиреНрдпрдерд╛
- рджреЗрдЦрдиреЗред setText ( "рдЖрдкрдХрд╛ рд╕рдВрджреЗрд╢:" + рд╕рдВрджреЗрд╢ ) ;
- setContentView ( рджреЗрдЦреЗрдВ ) ;
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрдИрдбреА = C2DMessagingред getRegademyId ( рдпрд╣ ) ;
- рдЕрдЧрд░ ( рдЖрдИрдбреА == "" )
- {
- C2DMessagingред рд░рдЬрд┐рд╕реНрдЯрд░ ( рдпрд╣ , "<yourmail> @ gmail.com" ) ;
- }
- }
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ, рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд░реНрд╡рд░ рдФрд░ рдЕрдиреНрдп рдЫреЛрдЯреА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рд╡рд╣рд╛рдВ рд░реБрдХреЗрдВрдЧреЗ, рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рд╣рд╛рд░реНрдбрдХреЛрдбред
рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб
рдкрд╣рд▓рд╛ рдХрджрдо рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рдпрд╣
рдЗрд╕ рдмреНрд▓реЙрдЧ рдкрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ (рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рднреА рд╣реИ)ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рд╕рдм рдХреБрдЫ рд░реВрд╕реА рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рджреЛрд╣рд░рд╛рдПрдВрдЧреЗ рдирд╣реАрдВ рдФрд░ рд╣рдо рдорд╛рди рд▓реЗрдВрдЧреЗ рдХрд┐ рд╣рдордиреЗ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред
рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Registration ID рдФрд░ Auth рдЯреЛрдХрди рд╣реИред рдЫреЛрдЯреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдорд▓рд╛, рдЖрдкрдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рджреЗрдирд╛ рд╣реЛрдЧрд╛ред рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдпрд╣ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред
рд╣рдореЗрдВ Google рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ,
рд╕рд╣реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВред рдФрд░ рд╡рд╣ рд╕рдм рд╣реИред рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди sendData (
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдХреНрдЯреЛрдХреЗрди,
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрдВрдЬреАрдХрд░рдг,
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрддрди,
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬреА,
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореВрд▓реНрдп )
- IOException { рдлреЗрдВрдХрддрд╛ рд╣реИ
- // рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рд╕реЗрдЯ рдХрд░реЗрдВ
- StringBuilder postDataBuilder = рдирдпрд╛ StringBuilder ( ) ;
- postDataBuilderред append ( "registration_id" ) ред
- append ( "=" ) ред рдкрд░рд┐рд╢рд┐рд╖реНрдЯ ( рдкрдВрдЬреАрдХрд░рдг ) ;
- // рд╕реЗрдЯ рдкрддрди_рдХреА - рд╕рдореВрд╣ рд╕рдВрджреЗрд╢ рдпрджрд┐ рдкрддрди рдХреБрдВрдЬреА рд╕рдорд╛рди рд╣реИ, рдФрд░
- // рдбрд┐рд╡рд╛рдЗрд╕, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛,
- // рд▓реЗрдХрд┐рди рд╕рднреА рдПрдХ рдмрд╛рд░ рдореЗрдВ рдирд╣реАрдВред
- postDataBuilderред рдкрд░рд┐рд╢рд┐рд╖реНрдЯ ( "рдФрд░" ) ред рдкрд░рд┐рд╢рд┐рд╖реНрдЯ ( "рдкрддрди_рдХреА" ) ред append ( "=" ) ред
- рдЙрдкрд╛рдВрдЧ ( рдкрддрди ) ;
- // рдкреНрд░реЗрд╖рд┐рдд рддрд┐рдерд┐, рдкреНрд░рд╛рд░реВрдк <dataред> <Key> = <value> рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
- postDataBuilderред рдкрд░рд┐рд╢рд┐рд╖реНрдЯ ( "рдФрд░" ) ред append ( "рдбреЗрдЯрд╛ред" + рдХреБрдВрдЬреА ) ред append ( "=" ) ред
- append ( URLEncoder ред рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛ ( рдореВрд▓реНрдп, "UTF-8" ) ) ;
- рдмрд╛рдЗрдЯ [ ] рдкреЛрд╕реНрдЯрдбреЗрдЯрд╛ = рдкреЛрд╕реНрдЯрдбреИрдЯрд╛рдмреБрд░реНрдЯрд▓ред .String ( ) getBytes ( "UTF-8" ) ;
- URL url = рдирдпрд╛ URL ( " android.clients.google.com/c2dm/send" ) ;
- // рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯ рдХрд░реЗрдВ
- // рдкреНрд░реЙрдХреНрд╕реА рдкреНрд░реЙрдХреНрд╕реА = рдирдпрд╛ рдкреНрд░реЙрдХреНрд╕реА (Proxy.Type.HTTP, рдирдпрд╛ InetSocketAddress ("lazerboy.local", 8080));
- HttpsURLConnection рдХреЙрди = ( HttpsURLConnection ) urlред openConnection ( / * рдкреНрд░реЙрдХреНрд╕реА * / ) ;
- Connред setDoOutput ( рд╕рдЪ ) ;
- Connред setHostnameVerifier ( рдпрд╣ рдирдпрд╛ MyHostnameVerifier ( ) ) ;
- Connред setRequestMethod ( "POST" ) ;
- Connред setRequestProperty ( "рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░" )
- "рдЖрд╡реЗрджрди / x-www-form-urlencoded; рдЪрд╛рд░рд╕реЗрдЯ = UTF-8" ) ;
- Connред setRequestProperty ( "рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ" , рдкреВрд░реНрдгрд╛рдВрдХ ред рд╕реНрдЯреНрд░рд┐рдВрдЧ ( рдкреЛрд╕реНрдЯрдбреЗрдЯрд╛ред рд▓рдВрдмрд╛рдИ ) ) ;
- Connред setRequestProperty ( "рдкреНрд░рд╛рдзрд┐рдХрд░рдг" , "GoogleLogin Ord =" + AndorToken ) ;
- рдЖрдЙрдЯрдкреБрдЯрд╕реНрдЯреНрд░реАрдо рдЖрдЙрдЯ = рдХреЙрдиред getOutputStream ( ) ;
- рдмрд╛рд╣рд░ред рд▓рд┐рдЦрдирд╛ ( рдкреЛрд╕реНрдЯрдбреЗрдЯрд╛ ) ;
- рдмрд╛рд╣рд░ред рдХрд░реАрдм ( ) ;
- // рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
- int responseCode = рдХреЙрдиред getResponseCode ( ) ;
- if ( responseCode == HttpServletResponseред SC_UNAUTHORIZED ||
- responseCode == HttpServletResponseред SC_FORBIDDEN ) {
- рдкреНрд░рдгрд╛рд▓реАред рдмрд╛рд╣рд░ ред рдкреНрд░рд┐рдВрдЯрдл ( "рдЕрдирдзрд┐рдХреГрдд - рдЯреЛрдХрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ" ) ;
- рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;
- }
- рдЕрдЧрд░ ( responseCode == HttpServletResponseред SC_OK )
- {
- рдкреНрд░рдгрд╛рд▓реАред рдмрд╛рд╣рд░ ред рдкреНрд░рд┐рдВрдЯрдл ( "рдбреЗрдЯрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рднреЗрдЬрд╛ рдЧрдпрд╛!" ) ;
- рд╕рдЪ рд▓реМрдЯрдирд╛ ;
- }
- рдкреНрд░рдгрд╛рд▓реАред рдмрд╛рд╣рд░ ред рдкреНрд░рд┐рдВрдЯрдл ( "рдХреБрдЫ рдЧрд▓рдд, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдВрджреЗрд╢:" , рдХреЙрдиред getResponseMessage ( ) ) ;
- рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;
- }
рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рдЧрд╛рдпрдм рд╣реИ: рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрджреЗрд╢ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдЯреЛрдХрди рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдЬреЛ рдХреБрдЫ рднреА рдЪрд╛рд╣рд┐рдП рд╡рд╣ Google рд╕реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдпрд╣рд╛рдВ ред
рдпрджрд┐ рдХреЛрдб рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдорд╛рд░реЗ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЛ рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реВрдЪрдирд╛ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рджреЗрдЦреЗрдЧрд╛, рдФрд░ рдпрджрд┐ рд╡рд╣ рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рд╕рд░реНрд╡рд░ рд╕реЗ рдкрд╛рда рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдЧрд╛ред рд╣реБрд░реНрд░реЗ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдордиреЗ рдХреНрдпрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдореИрдВрдиреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдЖрдк рдмрд╣реБрдд рд╕рд┐рд░рджрд░реНрдж рдХреЗ рдмрд┐рдирд╛ рдПрдВрдбреНрд░реЙрдЗрдб-рдЖрдзрд╛рд░рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ C2DM рд╕рдорд░реНрдерди рдХреЛ рдХреИрд╕реЗ рддреЗрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдФрд░ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб, рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмреЗрд╢рдХ, "рд╕рдлреЗрдж рдзрдмреНрдмреЗ" рдереЗ, рд▓реЗрдХрд┐рди рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ, рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдФрд░ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдирд╛ рдерд╛ рддрд╛рдХрд┐ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП C2DM рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХреЗред
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ
- рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрд╕реЗрдЬрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдВрдбреНрд░реЙрдЗрдб рдХреНрд▓рд╛рдЙрдб
- рд╡рд╣ рд╕реНрдерд╛рди рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ C2DM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦрд╛рддрд╛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
- C2DM рдФрд░ Android рдкрд░ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХрд╛ рдмреНрд▓реЙрдЧ
- рдЧреВрдЧрд▓ рд╕реЗ рдирдореВрдирд╛
- рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдФрд░ рдмреНрд▓реЙрдЧ
- C2DM рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг