рд╕реЛрдиреА рд╕реНрдорд╛рд░реНрдЯрд╡реЙрдЪ рдЕрдкрдиреЗ рд╕рдордп рдХрд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЙрдкрдХрд░рдг рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╣рдм рдкрд░ рдмрд╛рдИрдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЦреИрд░, рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ - рдЪрд▓реЛ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВ! рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдХрд┐рд╕реА рднреА рдСрдбрд┐рдпреЛ рдкреНрд▓реЗрдпрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВрдЧреЗред
рдпрд╣ рд▓реЗрдЦ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдкрдХреНрд╖ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЬреЛ рд▓реЛрдЧ рдПрдХ рд╣реА рдШрдбрд╝рд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдпрд╛ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдореАрдХреНрд╖рд╛ рдкрдврд╝рддреЗ рд╣реИрдВ, рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдЙрдирдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдо
рд╕реНрдорд╛рд░реНрдЯрд╡реЙрдЪ рдХреЗ рдкрд╣рд▓реЗ рдФрд░ рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рддреБрд░рдВрдд рд╡рд┐рдХрд╛рд╕ рдХрд░реЗрдВрдЧреЗред
рдЖрд╡рд╢реНрдпрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
Android SDK рдкреНрд░рдмрдВрдзрдХ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░
рдЯреВрд▓ -> рдРрдб-рдСрди рд╕рд╛рдЗрдЯреНрд╕ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рд╛рдЗрдЯреЗрдВ рдЯреИрдм рдкрд░, рдШрдбрд╝реА рдХреЗ рдиреАрдЪреЗ рдПрд╕рдбреАрдХреЗ рд╕реЗ рдкрддрд╛ рдЬреЛрдбрд╝реЗрдВ:
dl-developer.sonymobile.com/sdk_manager/Sony-Add-on-SDK.xml
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрд╕рдбреАрдХреЗ рди рдХреЗрд╡рд▓ рдШрдбрд╝рд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕реЛрдиреА рдХреЗ рдХреБрдЫ рдЕрдиреНрдп рдЯреНрд░рд┐рдХреА рдбрд┐рд╡рд╛рдЗрд╕ рднреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдорд╛рд░реНрдЯ рд╣реЗрдбрд╕реЗрдЯ ... рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рд╣рдо рдХреЗрд╡рд▓ рдШрдбрд╝рд┐рдпреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред

рдФрд░ рдЕрдм рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдирдП рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛,
[Android SDK рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛] / sdk / add-ons / addon-sony_add-on_sdk_2_1-sony-16 / рдирдореВрдиреЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджреЗрдЦрдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред рд╕рднреА рдШрдбрд╝реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рд╣рдо рдХреЗрд╡рд▓ рдЕрднрд┐рдЬрд╛рдд рд╡рд░реНрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдПрдореБрд▓реЗрдЯрд░ рджреЗрдЦреЗрдВ
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдШрдбрд╝реА рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдПрдХ рдПрдореБрд▓реЗрдЯрд░ рднреА рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП
AVD Manager рдореЗрдВ рдЬрд╛рдПрдВ рдФрд░ Sony рд╕реЗ рдПрдХ рдирдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдмрдирд╛рдПрдВ рдЬреЛ рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
Xperia Tред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐
рд╕реЛрдиреА рдПрдб-рдСрди рдПрд╕рдбреАрдХреЗ рдХреЛ рд▓рдХреНрд╖реНрдп рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛
рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ред

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

рдЬреЛ рд╣рдорд╛рд░реА рдЬрд╝рд░реВрд░рдд рдХреА рдШрдбрд╝реА рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИ (рдФрд░ рди рдХреЗрд╡рд▓, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдпреЛрдЬрдирд╛
рдЕрдЪреНрдЫрд╛, рдЕрдм рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВрдЧреЗ? рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ
рд╣реИрд▓реЛ рд╢рдмреНрдж рдХрд░рдирд╛ рдЙрдмрд╛рдК рд╣реИ, рддреЛ рдЪрд▓реЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рд▓рд┐рдЦреЗрдВ! рдлреЛрди рдкрд░ рдХреЛрдИ рднреА рдЦрд┐рд▓рд╛рдбрд╝реАред рдпрд╣ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдкреИрдорд╛рдирд╛ рд╣реИред ;)
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЗрд╢рд╛рд░реЛрдВ рдФрд░ рдХреНрд▓рд┐рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рджрд╛рдПрдВ рд╕реЗ рдмрд╛рдПрдВ рдФрд░ рдкреАрдЫреЗ рд╕реЗ рдЗрд╢рд╛рд░рд╛ рдЕрдЧрд▓реЗ / рдкрд┐рдЫрд▓реЗ рдЯреНрд░реИрдХ, рдКрдкрд░ / рдиреАрдЪреЗ рдЬреЛрд░ рд╕реЗ / рд╢рд╛рдВрдд рд╣реИред рдХреЗрдВрджреНрд░ рдореЗрдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ - рдкреНрд▓реЗрдмреИрдХ рдХреЛ рд░реЛрдХреЗрдВ / рдЬрд╛рд░реА рд░рдЦреЗрдВред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдХреНрд░реАрди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдПрдХ рд╡рд┐рдЬреЗрдЯ (рдШрдбрд╝реА рдХреЗ рд▓рд┐рдП) рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░, рдореБрдЦреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд┐рдВрдбреЛ рд▓рд╛рдПрдЧрд╛ред
- рдЪрд▓реЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧ рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдХреНрдд рдмрдирд╛рддреЗ рд╣реИрдВ - рдареАрдХ рд╣реИ, рдмрд╕ рд░рд┐рдЬрд░реНрд╡ рдореЗрдВред
- рдЗрд╕реЗ рд╕реНрдорд╛рд░реНрдЯрд╡реЙрдЪ рдХреЗ рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (рдкрд╣рд▓реЗ рдФрд░ рджреВрд╕рд░реЗ, рдЬреИрд╕рд╛ рдХрд┐ рдХреИрдк рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рдо IntelliJ IDEA рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ
рдЪреВрдВрдХрд┐ рдореИрдВ
IntelliJ IDEA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддрд╛ рд╣реВрдВред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рд╣рдо рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдВрдЧреЗ, рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рд╕реЛрдиреА рд╕реЗ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирддреЗ рд╣реИрдВред

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

рдлрд╝реЛрд▓реНрдбрд░ рдЦреЛрдЬреЗрдВ
SmartExtensionAPI :

рдлрд┐рд░ рдареАрдХ рд╣реИ рдФрд░ рдЕрдЧрд▓рд╛-> рдЕрдЧрд▓рд╛-> рдЕрдЧрд▓реЗ рдЕрдВрдд рддрдХ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ рджрд┐рдиреЛрдВ рдореЗрдВ рд╣реИред
рдлрд┐рд░ рд╣рдо рдЬреЛрдбрд╝реЗ рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреЛ рдореБрдЦреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред


рдЙрд╕реА рддрд░рд╣ рд╣рдо
SmartExtensionUtils рдХреЛ рдХрдиреЗрдХреНрдЯ
рдХрд░рддреЗ рд╣реИрдВ ред
рд╣рдо рдЖрдзрд╛рд░ рд╡рд░реНрдЧреЛрдВ рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ
рдЪрд▓рд┐рдП рд╢реБрд░реБрдЖрдд рдХрд░рддреЗ рд╣реИрдВред
AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.smartwatch_habra_demo"> <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="16"/> <uses-permission android:name="com.sonyericsson.extras.liveware.aef.EXTENSION_PERMISSION" /> <application android:label="- " android:icon="@drawable/icon"> <activity android:name="DemoConfigActivity" android:label=" " > <intent-filter> <action android:name="android.intent.action.MAIN" /> </intent-filter> </activity> <service android:name="DemoReceiverService" /> <receiver android:name="DemoExtensionReceiver" android:permission="com.sonyericsson.extras.liveware.aef.HOSTAPP_PERMISSION" > <intent-filter> <action android:name="com.sonyericsson.extras.liveware.aef.registration.EXTENSION_REGISTER_REQUEST" /> <action android:name="com.sonyericsson.extras.liveware.aef.registration.ACCESSORY_CONNECTION" /> <action android:name="android.intent.action.LOCALE_CHANGED" /> <action android:name="com.sonyericsson.extras.liveware.aef.notification.VIEW_EVENT_DETAIL" /> <action android:name="com.sonyericsson.extras.liveware.aef.notification.REFRESH_REQUEST" /> <action android:name="com.sonyericsson.extras.aef.widget.START_REFRESH_IMAGE_REQUEST" /> <action android:name="com.sonyericsson.extras.aef.widget.STOP_REFRESH_IMAGE_REQUEST" /> <action android:name="com.sonyericsson.extras.aef.widget.ONTOUCH" /> <action android:name="com.sonyericsson.extras.liveware.extension.util.widget.scheduled.refresh" /> <action android:name="com.sonyericsson.extras.aef.control.START" /> <action android:name="com.sonyericsson.extras.aef.control.STOP" /> <action android:name="com.sonyericsson.extras.aef.control.PAUSE" /> <action android:name="com.sonyericsson.extras.aef.control.RESUME" /> <action android:name="com.sonyericsson.extras.aef.control.ERROR" /> <action android:name="com.sonyericsson.extras.aef.control.KEY_EVENT" /> <action android:name="com.sonyericsson.extras.aef.control.TOUCH_EVENT" /> <action android:name="com.sonyericsson.extras.aef.control.SWIPE_EVENT" /> <action android:name="com.sonyericsson.extras.aef.control.OBJECT_CLICK_EVENT" /> <action android:name="com.sonyericsson.extras.aef.control.MENU_ITEM_SELECTED" /> </intent-filter> </receiver> </application> </manifest>
рдЬреЛ рдХреБрдЫ рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЙрд╕рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ: рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдРрд╕рд╛ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдШрдбрд╝реА рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛, рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕реЗрд╡рд╛ рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдЧрд╛, рдЬреЛ рдХреБрдЫ рд╕рд╛рд░реНрдердХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ред рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╡рд┐рдВрдбреЛ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА
рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВред
рд░рд┐рд╕реАрд╡рд░ рд╡рд░реНрдЧ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:
DemoExtensionReceiver.java public class DemoExtensionReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, final Intent intent) { intent.setClass(context, DemoReceiverService.class); context.startService(intent); } }
рдареАрдХ рд╣реИ, рдЕрдм рдЪрд▓реЛ рд╕реЗрд╡рд╛ рдкрд░ рд╣реА рдЪрд▓рддреЗ рд╣реИрдВ:
DemoReceiverService.java public class DemoReceiverService extends ExtensionService { public static final String EXTENSION_KEY = "com.smartwatch_habra_demo";
рд▓реИрдХреЛрдирд┐рдХ рдкрд░реНрдпрд╛рдкреНрдд, рд╣реИ рдирд╛? рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рдЙрдардиреЗ рдЪрд╛рд╣рд┐рдПред рд╣рдореЗрдВ рдПрдХ рд╣реА рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ, рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП - рдШрдбрд╝реА рдкрд░, рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдФрд░ рдбреНрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдХрдВрдЯреНрд░реЛрд▓рдЯреЗрдХреНрд╕реНрдЯреЗрдВрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ ред
рд▓реЗрдХрд┐рди
RegistrationInformation рдШрдбрд╝реА рдкреНрд░рдмрдВрдзрди рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╣рдорд╛рд░реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдПред
DemoRegistrationInformation.java public class DemoRegistrationInformation extends RegistrationInformation { public static final int WIDGET_WIDTH_SMARTWATCH = 128; public static final int WIDGET_HEIGHT_SMARTWATCH = 110; public static final int CONTROL_WIDTH_SMARTWATCH = 128; public static final int CONTROL_HEIGHT_SMARTWATCH = 128; public static final int CONTROL_WIDTH_SMARTWATCH_2 = 220; public static final int CONTROL_HEIGHT_SMARTWATCH_2 = 176; Context mContext; protected DemoRegistrationInformation(Context context) { if (context == null) { throw new IllegalArgumentException("context == null"); } mContext = context; } @Override public ContentValues getExtensionRegistrationConfiguration() { String iconHostapp = ExtensionUtils.getUriString(mContext, R.drawable.icon); ContentValues values = new ContentValues(); values.put(Registration.ExtensionColumns.CONFIGURATION_ACTIVITY,DemoConfigActivity.class.getName());
рдпрд╣ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЬреЛ рд╕реЛрдиреА рдПрдкреАрдЖрдИ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рд╕реЛрдиреА рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдкреВрд░реЗ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИ, рдФрд░ рдХреЛрдИ рднреА рд╣рдореЗрдВ рдПрдХ рдЖрд╡реЗрджрди (рд╡рд┐рд╕реНрддрд╛рд░) рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрди рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред рдпрд╛ рдХреЗрд╡рд▓ рдЪрдпрдирд┐рдд рд▓реЛрдЧреЛрдВ рдкрд░ред
рдЪреВрдВрдХрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╕реЗрдВрд╕рд░, рд╡рд┐рдЬреЗрдЯ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░ рдФрд░ рдПрдкреАрдЖрдИ рд╕рдВрд╕реНрдХрд░рдг рдХреНрдпрд╛ рд╣реИрдВред рд╣рдореЗрдВ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рд╡рд┐рднрд┐рдиреНрди рд╕реЗрдВрд╕рд░ (рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди - getRequiredSensorApiVersionред рд╣рдореЗрдВ рдЗрд╕рдХреА рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП API рд╕рдВрд╕реНрдХрд░рдг = 0 рд╣реИред
- рд╕реВрдЪрдирд╛рдПрдВ - рдкреЙрдк-рдЕрдк рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕рдВрджреЗрд╢; рд╣рдореЗрдВ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рддреЛ GetRequiredNotificationApiVersion рдореЗрдВ рдлрд┐рд░ рд╕реЗ 0ред
- "рдирд┐рдпрдВрддреНрд░рдХ" рд╡рд╣ рд╣реИ "рдШрдбрд╝реА рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд┐рдВрдбреЛ"ред рдЙрд╕рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рдкрд╣рд▓реЗ рдФрд░ рджреВрд╕рд░реЗ рдШрдВрдЯреЗ рдХреЗ рд╕рдорд░реНрдерд┐рдд рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдХреЗрд╡рд▓ рд╣рдореЗрдВ, рдХрд┐рд╕реА рдЕрдиреНрдп рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
- getRequiredControlApiVersion - рд╕рдВрд╕реНрдХрд░рдг 1 (рдШрдбрд╝реА рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдпрджрд┐ рд╡реЗ 2 рдкреНрд░реЗрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рдХреЗрд╡рд▓ рд╕реНрдорд╛рд░реНрдЯрд╡реЙрдЪ 2 рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ рдкрд╣рд▓реЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
- getTargetControlApiVersion - API рдХрд╛ рд▓рдХреНрд╖реНрдп рд╕рдВрд╕реНрдХрд░рдг, рдпрд╣рд╛рдВ рд╕реНрдорд╛рд░реНрдЯрд╡реЙрдЪ 2 рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП 2
- isDisplaySizeSupported - рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдЙрд╕ рдкрд░ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред
- рд╡рд┐рдЬреЗрдЯ рд╕реВрдЪреА рдореЗрдВ "рд╡рд┐рдЬреЗрдЯ" рдПрдХ рдЫрд╡рд┐ рд╣реИред рдЗрд╕реА рддрд░рд╣, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ: рдШрдбрд╝реА рдХрд╛ рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рдЧреЗрдЯреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдлрд╕реЛрд╕ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛
getExtensionRegistrationConfiguration рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ
рдХрд╛ рдПрдХ
рдЧреБрдЪреНрдЫрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред
рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдЦрд┐рдбрд╝рдХреА
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд┐рдВрджреБ рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рд╣рдо рдХреЗрд╡рд▓ рдШрдбрд╝рд┐рдпреЛрдВ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЪрд┐рддреНрд░ред рд╡рд╣ рд╕рдм рд╣реИред рдФрд░ рдХреБрдЫ рдирд╣реАрдВред рд╣рдо рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЙрдиреНрдирдд рдирд┐рдпрдВрддреНрд░рдХ рджрд┐рдЦрд╛рдИ рджрд┐рдП, рд▓реЗрдХрд┐рди рд╣рдо рд╢реБрд░реВ рдореЗрдВ рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рдЪрд┐рддреНрд░ред
рдпрджрд┐ рдЖрдк рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП
рд▓реЗрдЖрдЙрдЯ рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдШрдЯрдХреЛрдВ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдирд╛ - рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрд▓рд┐рдХ рдФрд░ рдЕрдиреНрдп рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рдзреВрдорд┐рд▓ рд╕рдВрднрд╛рд╡рдирд╛ ... рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреАред рдЗрд╕ рддрд░рд╣ рд╣рдорд╛рд░реА рддрд╕реНрд╡реАрд░ рджрд┐рдЦреЗрдЧреА:

рдФрд░ рдпрд╣рд╛рдВ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬреЛ рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдЬрд╡рд╛рдм рджреЗрдЧрд╛:
DemoControl.java public class DemoControl extends ControlExtension { static final Rect buttonStopPlaySmartWatch = new Rect(43, 42, 85, 88); public DemoControl(Context context, String hostAppPackageName) { super(context, hostAppPackageName); } @Override public void onTouch(final ControlTouchEvent event) {
рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп
onSwipe рдФрд░
onTouch рдЦреБрдж рдХреЗ рд▓рд┐рдП рдмреЛрд▓рддреЗ рд╣реИрдВ,
onResume рдХреЛ рд╣рд░ рдмрд╛рд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдШрдбрд╝реА рд╣рд╛рдЗрдмрд░рдиреЗрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдЪрд▓реА рдЧрдИ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдЗрдХрди рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХрд╛рдВрд╢ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
MusicBackgroundControlWrapper рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рдХреБрдВрдЬреА рдХреЗ рдХреАрд╕реНрдЯреНрд░реЛрдХ рдХреЗ рдЕрдиреБрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рд╡рд░реНрдЧ рд╣реИред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рднреА рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдФрд░ рдлреЛрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдзрдорд╛рдХреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдЬрд╛рдирддреЗ рд╣реИрдВ (рдПрдВрдбреНрд░реЙрдЗрдб 2.3 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде!) - рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред
MusicBackgroundControlWrapper.java public class MusicBackgroundControlWrapper { public static void KeyPressDownAndUp(int key,Context context){ long eventtime = SystemClock.uptimeMillis() - 1; Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null); KeyEvent downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN, key, 0); downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent); context.sendOrderedBroadcast(downIntent, null); eventtime++; Intent upIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null); KeyEvent upEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_UP, key, 0); upIntent.putExtra(Intent.EXTRA_KEY_EVENT, upEvent); context.sendOrderedBroadcast(upIntent, null); } public static void VolumeUp(Context context){ AudioManager audioManager =(AudioManager)context.getSystemService(Context.AUDIO_SERVICE); int max=audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); int current=audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); if (current<max){ current++; } audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, current,0); } public static void VolumeDown(Context context){ AudioManager audioManager =(AudioManager)context.getSystemService(Context.AUDIO_SERVICE); int current=audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); if (current>0){ current--; } audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, current,0); } public static void TogglePausePlay(Context context){ KeyPressDownAndUp(KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE,context); } public static void Next(Context context){ KeyPressDownAndUp(KeyEvent.KEYCODE_MEDIA_NEXT, context); } public static void Prev(Context context){ KeyPressDownAndUp(KeyEvent.KEYCODE_MEDIA_PREVIOUS, context); } }
рдШрдбрд╝реА рдХреЗ рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
DemoControl2 рдХреЛ
DemoControl рд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░реЗрдВрдЧреЗ, рдХреБрдЫ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдо рдПрдХ рдФрд░ рдЗрдореЗрдЬ onResume () рдкрд░ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдСрдирдЯрдЪ рдореЗрдВ рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЬрд╛рдВрдЪреЗрдВрдЧреЗред
DemoControl2.java public class DemoControl2 extends DemoControl { static final Rect buttonStopPlaySmartWatch2 = new Rect(59, 52, 167, 122); public DemoControl2(Context context, String hostAppPackageName) { super(context, hostAppPackageName); } @Override public void onTouch(final ControlTouchEvent event) {
рд╡рд┐рдЬреЗрдЯ
рддреЛ рд╡рд┐рдЬреЗрдЯред рд╡рд┐рд╣рд┐рдд рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдШрдбрд╝реА рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП
92x92 рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЖрдк рдЗрд╕реЗ рдЙрдЪреНрдЪ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди (
128x110 рддрдХ ) рддрдХ
рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ , рд▓реЗрдХрд┐рди рдлрд┐рд░ рдпрд╣ рд╢реИрд▓реА рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдорд╛рдирдХ рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ред
рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА - рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рдШрдбрд╝реА рдкрд░ рд╣рдорд╛рд░реЗ рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╡рд░реНрдЧ рднреА рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рд╕рднреА рд╡рд┐рд╡рд░рдг рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╣реИрдВред
DemoWidget.java public class DemoWidget extends WidgetExtension { public DemoWidget(Context context, String hostAppPackageName) { super(context, hostAppPackageName); } @Override public void onStartRefresh() {
рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╣рд╛рдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБ рд╣реИред рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде, рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ
рд▓реЗрдЖрдЙрдЯ рдХреЛ рдПрдХ рддрд╕реНрд╡реАрд░ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рд╢реИрдХреНрд╖рдгрд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрд╡рд╕рд░ рди рд▓реЗрдирд╛ рдкрд╛рдк рд╣реИред рд╣рдо
DemoWidgetImage рдХреНрд▓рд╛рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реЗрдВрдбрд░ рдХрд░реЗрдВрдЧреЗред
DemoWidgetImage.java public class DemoWidgetImage extends SmartWatchWidgetImage { public DemoWidgetImage(Context context) { super(context); setInnerLayoutResourceId(R.layout.music_widget_image); } @Override protected void applyInnerLayout(LinearLayout innerLayout) {
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╡рд┐рдВрдбреЛ
рдЦреИрд░, рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдиреНрдпреВрдирддрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдо
DemoRegistrationInformation рд╡рд░реНрдЧ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рдЕрдм рд╣рдореЗрдВ рдЗрд╕реЗ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рднрд░рдирд╛ рд╣реИред рдореИрдВрдиреЗ рдЯрд┐рдкреНрдкрдгреА рднреА рдирд╣реАрдВ рдХреАред рдмрд╕ рдПрдХ рдХреЛрдбред
DemoConfigActivity.java public class DemoConfigActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.config); } }
config.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text=" " android:id="@+id/textView" android:layout_gravity="center_horizontal"/> </LinearLayout>
Google Play рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреИрд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ
рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреЛрд░ рдореЗрдВ рдШрдбрд╝реА рдкреНрд░рдмрдВрдзрди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ Google рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╡рд┐рд╡рд░рдг рдкрд╛рда рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:
- рд╕реНрдорд╛рд░реНрдЯрд╡рд╛рдЪ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - "рд╕реНрдорд╛рд░реНрдЯрд╡реЙрдЪ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрд╡рд╡реЗрдпрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди"
- рд╕реНрдорд╛рд░реНрдЯрд╡реЙрдЪ 2 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - "рд╕реНрдорд╛рд░реНрдЯрд╡рд╛рдЪ 2 рдХреЗ рд▓рд┐рдП рд╕реНрдорд╛рд░реНрдЯ рдХрдиреЗрдХреНрдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди"
- рдпрджрд┐ рджреЛрдиреЛрдВ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рддреЛ рджреЛрдиреЛрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рддрджрдиреБрд╕рд╛рд░ рдЬреЛрдбрд╝реЗрдВред
рдЖрдорддреМрд░ рдкрд░, рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдШрдбрд╝реА рдирд╣реАрдВ рд╣реИ, рд╡рд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕реЗрдЯ рдХрд░реЗрдВ, рд╢реБрд░реВ рди рдХрд░реЗрдВ рдФрд░ рдПрдХ рдиреНрдпреВрдирддрдо рдЪрд┐рд╣реНрди рдбрд╛рд▓реЗрдВ, рд╣рд╛рдВред рдЗрд╕рдХреА рдЖрджрдд рдбрд╛рд▓ рд▓реЗрдВ, рдпрд╣ Google Play рдХреА рджреБрдирд┐рдпрд╛ рд╣реИ! рд▓реЗрдХрд┐рди рдореВрд▓реНрдпрд╛рдВрдХрди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рджреБрдирд┐рдпрд╛ рдереЛрдбрд╝реА рдмреЗрд╣рддрд░ рд╣реЛ рд░рд╣реА рд╣реИ, рд╣реИ рдирд╛ ...?
рдирдореВрдирд╛ рдЖрд╡реЗрджрди рдореЗрдВ рдФрд░ рдХреНрдпрд╛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╡рд┐рдВрдбреЛ (рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╢рд╛рд░реЛрдВ рдХреЛ рдкрд▓рдЯрдирд╛)ред
- рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХ рд╕рд╣реА рдФрд░ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рддрд░реАрдХрд╛ред рдПрдВрдбреНрд░реЙрдЗрдб 4.4 рдореЗрдВ, рдЖрд╡рд╢реНрдпрдХ рдПрдкреАрдЖрдИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рд╣реИ ( рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдкреБрд░рд╛рдиреЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред
- рджреГрд╢реНрдп рдкрд░ рд╕реНрдерд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрдгрдирд╛ рдХрд░реЗрдВ (рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░реЗрдВ, рдвреВрдВрдвреЗрдВ)ред рдЬреЛ рднреА рд╣рд╛рде рдЖрдк рд╣рд░ рдмрд╛рд░ рд▓реЗрддреЗ рд╣реИрдВ, рдЕрдЪрд╛рдирдХ рд╕реЛрдиреА рдПрдХ рддреАрд╕рд░реЗ рд╕рдВрдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдПрдХ рддреАрд╕рд░реА рдШрдбрд╝реА рдмрдирд╛рдПрдЧрд╛ред
рд╣рдорд╛рд░реЗ рдХрд╛рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо




рдПрдХ рд▓реЗрдЦ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб
github.com/Newbilius/smartwatch_habra_demoрд╕реЛрдиреА рд╕рд╛рдЗрдЯ рдХреЗ рд╕рд╛рдордиреЗ рд╕реНрд░реЛрдд
developer.sonymobile.com/knowledge-base/sony-add-on-sdkрдФрд░ рдлрд┐рд░, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдШрдбрд╝реА рдХреА рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рд╣реИрдВ -
рдЙрджрд╛рд╣рд░рдг рдлрд╝реЛрд▓реНрдбрд░ рджреЗрдЦреЗрдВ (рдкреВрд░реНрдг рдкрде рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рдмрд┐рд▓реНрдХреБрд▓ рд╕рднреА рд╕реЗрдВрд╕рд░ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЖрдкрдХреЛ "рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд" рдФрд░ рд░реБрдЪрд┐ рдмрдирд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрдирд╛ рд╣реИ, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред
PS рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдПрдХ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ Google Play рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╡рд╛рд▓реЗ, рд▓реЗрдХрд┐рди рднреБрдЧрддрд╛рди рдХрд┐рдП рдЧрдП рд▓реЛрдЧ, рдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИрдВ рдпрд╛ рд╕рдорд╛рди рдХрдорд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдеред
PPS I рдХреЗ рдкрд╛рд╕ рд╣рд╛рде рдкрд░ рдШрдбрд╝реА рдХрд╛ рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рд╡рд╣ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдпрд╛ рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рд╕рд╛рде рд╣реА рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдПрдХ рдЪреЗрдХ, рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдШрдбрд╝реА рдкрд░ рдореИрдВрдиреЗ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреАред рдШрдбрд╝реА рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рд╕рдм рдХреБрдЫ рд╕рдЯреАрдХ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реИред