Google рдХреНрд▓рд╛рдЙрдб рдореИрд╕реЗрдЬрд┐рдВрдЧ рдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмрдирд╛рдП рд░рдЦрдирд╛

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

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдк рд╕рднреА рдиреЗ Google рдХреНрд▓рд╛рдЙрдб рдореИрд╕реЗрдЬрд┐рдВрдЧ рдкрд░ рдкрд╣рд▓реЗ рд╣реА рд▓реЗрдЦ рдкрдврд╝ рд▓рд┐рдП рд╣реЛрдВрдЧреЗ:


рдкрд╛рда # 1: рдЕрдХреНрд╕рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд░рд╣реЗрдВ


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

рдХреЙрд▓ gcm.register (SENDER_ID); рдмрд╣реБрдд рдмрд╛рд░ IOException "SERVICE_NOT_AVAILABLE" рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред

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

рдХреИрд╕реЗ рд╣реЛ? рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЗрд╕ рд╕рдВрджреЗрд╢ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ GCM рдкрдВрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдерд╛ рдФрд░ рдЖрдкрдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рд╕рдордп рдФрд░ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рддреЗрдЬреА рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╕рд▓рд╛рд╣ рд╣реИред

рдкрд╛рда # 2: рдпрджрд┐ рдХреЛрдИ рд╢реНрд░рдорд┐рдХ рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдмрдирд╛рдИ рдЧрдИ рд╣реИ рддреЛ рднреА рдмрд╛рд░-рдмрд╛рд░ рдкрдВрдЬреАрдХреГрдд рдХреЙрд▓ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдЗрдП


рдпрд╣ рд╕рд▓рд╛рд╣ рдЕрдЬреАрдм рд╣реИ рдФрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ GCM рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рднреА рдкреНрд░рд╛рд╡рдзрд╛рди рдХрд░реЗрдВрдЧреЗред

рддреНрд░реБрдЯрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдк рдХрд┐рддрдиреА рдмрд╛рд░ gcm.register (SENDER_ID) рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ; рдпрд╣ рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд▓рдЧрд╛рддрд╛рд░ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛрддрд╛ рд╣реИред рднрд▓реЗ рд╣реА рдХрд╛рд░реНрдп рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрдирд╛рдИ рдЧрдИ рдереА, рд▓реЗрдХрд┐рди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрднреА рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ GCM рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯрд╕реАрд╡рд░ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ:
<action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 

рдЖрдкрдХреЛ рдПрдХ рдХрд╛рд░реНрдп рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓реЗрдЧрд╛:
 final String registrationId = intent.getStringExtra("registration_id"); 

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

рдКрдкрд░ рджрд┐рдП рдЧрдП рджреЛ рд╕реБрдЭрд╛рд╡ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЖрдкрдХреЗ рдЙрдкрдХрд░рдг рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рдпреБрдХреНрддрд┐рдпрд╛рдВ рдЖрдкрдХреЛ рдмрддрд╛рдПрдВрдЧреА рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреА рд╕рдВрджреЗрд╢ рд╕реЗрд╡рд╛ рдХреЗ рдирд┐рд░рдВрддрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВред

рдкрд╛рда рд╕рдВрдЦреНрдпрд╛ 3: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЬрдм рднреА рдЖрдк рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ


рдпрд╣ рдЯрд┐рдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╕реЗ рд▓реА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЫреЛрдбрд╝рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ред

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

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрдВрдЬреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ AndroidManifest рдореЗрдВ рдПрдХ рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯрд░ рдХреНрд▓рд╛рд╕ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╣реИ рдЬреЛ PACKAGE_REPLACED рдИрд╡реЗрдВрдЯ рдХреЛ рд╕реБрдиреЗрдЧрд╛:
 <receiver android:name=".UpdateReceiver"> <intent-filter> <action android:name="android.intent.action.PACKAGE_REPLACED" /> <data android:path="<YOUR_PACKAGE_NAME_HERE>" android:scheme="package" /> </intent-filter> </receiver> 

рдЬрд┐рд╕ рд╕рдордп OnReceive рд╡рд┐рдзрд┐ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдк GCM рдкрдВрдЬреАрдХрд░рдг рдЖрд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, рд╡рд░реНрддрдорд╛рди рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдХреЛ рдПрдХ рдирдП рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬреЗрдВред

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИ
 gcm = GoogleCloudMessaging.getInstance(activity); regid = gcm.register(SENDER_ID); 
рдпрд╣ рд╕реАрдзреЗ onReceive BroadcastReceiver рдкрд░ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдореБрдЦреНрдп рдзрд╛рдЧреЗ (MAIN_THREAD) рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╕реАрдзреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, AsyncTask рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рдпрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗрд╡рд╛, рдпрд╛ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд░реВрдк рд╕реЗ рдереНрд░реЗрдб ред


рдкрд╛рда рд╕рдВрдЦреНрдпрд╛ 4: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ


рдпрд╣ рдХрд╣реАрдВ рднреА рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рд╣реИ (рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рдкрдВрдЬреАрдХрд░рдг рдЖрдИрдбреА рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдЖрдИрдбреА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рдЕрдЧрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдлрд░реНрдорд╡реЗрдпрд░ рдмрджрд▓рддрд╛ рд╣реИ рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝реИрдХреНрдЯрд░реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (рдлрд╝реИрдХреНрдЯрд░реА рд░реАрд╕реЗрдЯ) рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдкрдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдЖрдИрдбреА рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реЛрдиреЗ рдкрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреБрд░рдВрдд рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдЬреАрд╕реАрдПрдо рдкрдВрдЬреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдлрд┐рд░ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдореИрд╕реЗрдЬрд┐рдВрдЧ рд╕реЗрд╡рд╛ рдХрд╛рдо рдХрд░рддреА рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ? рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рддрд░реАрдХрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИред рдЬрдм рднреА рдлреЛрди рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, AndroidManifest рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рдирдИ рдЕрдиреБрдорддрд┐ рджреЗрдВ:
 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

рдФрд░ BOOT_COMPLETED рдИрд╡реЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯрд░ рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВ:
 <receiver android:name=".BootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> 

рдЕрдм, рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрд╕ рд╢реНрд░реЛрддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рдЖрдк рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ GCM рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░ рдкрд╛рдПрдВрдЧреЗред

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

рд╡рд╣ рд╕рдм рд╣реИред рдпрд╣ рджреБрдЦрдж рд╣реИ рдХрд┐ GCM рдХреЗ рд╕реБрдЪрд╛рд░реВ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдРрд╕реЗ "рдирд░реНрддрдХрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдиреГрддреНрдп" рдкрд░ рдЬрд╛рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рджреБ: рдЦ рд╣реБрдЖ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрд┐рдВрджреБрдУрдВ рдХреЛ Google рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдкреАрдПрдо рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдФрд░ рдЯрд╛рдЗрдкреЛрд╕

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


All Articles