Android NFC рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕


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

рдПрдирдПрдлрд╕реА рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛

рдПрдирдПрдлрд╕реА рдЖрд░рдПрдлрдЖрдИрдбреА рддрдХрдиреАрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдЬрд┐рд╕рдореЗрдВ 13.56 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдФрд░ 10 рд╕реЗрдореА рддрдХ рдХреА рдХрд╛рд░реНрдп рджреВрд░реА рд╣реИред рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рджрд░ 424 рдХреЗрдмреА / рдПрд╕ рддрдХ рд╣реИред рдЕрдиреНрдп рд╕рдВрдЪрд╛рд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдирдПрдлрд╕реА рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рдЗрд╕рдХреА рдЧрддрд┐ рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╣реИред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЖрдВрдХрдбрд╝рд╛ рдЕрдиреНрдп рд╕рдВрдЪрд╛рд░ рддрдХрдиреАрдХреЛрдВ рдХреЗ рдмреАрдЪ рдПрдирдПрдлрд╕реА рдХреЗ рд╕реНрдерд╛рди рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред



рдПрдирдПрдлрд╕реА рддрдХрдиреАрдХ рдХреЗ рддреАрди рдореЛрдб рд╣реИрдВ: рдПрдирдПрдлрд╕реА рдХрд╛рд░реНрдб рдПрдореБрд▓реЗрд╢рди, рдкреАрдпрд░-рдЯреВ-рдкреАрдпрд░ рдореЛрдб рдФрд░ рд░реАрдб / рд░рд╛рдЗрдЯ рдореЛрдбред



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

рдПрдирдПрдлрд╕реА рдХрд╛рд░реНрдб рдПрдореБрд▓реЗрд╢рди рдореЛрдб

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



EB, SWP (рд╕рд┐рдВрдЧрд▓ рд╡рд╛рдпрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓) рдмрд╕ рдпрд╛ DCLB (рдбрд┐рдЬрд┐рдЯрд▓ рдХреЙрдиреНрдЯреИрдХреНрдЯрд▓реЗрд╕ рдмреНрд░рд┐рдЬ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ NFC рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред рдПрдирдПрдлрд╕реА рдорд╛рдирдХ рдореЗрдЬрдмрд╛рди рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдмреАрдЪ рддрд╛рд░реНрдХрд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЖрд░рдПрдл рдХреНрд╖реЗрддреНрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред EB рдПрдХ рдПрдореНрдмреЗрдбреЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ OS рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



EB рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ: рдЖрдк рдЗрд╕реЗ рдПрдХ рд╕рд┐рдо рдХрд╛рд░реНрдб, рдПрд╕рдбреА рдХрд╛рд░реНрдб рдпрд╛ рдПрдХ рдПрдирдПрдлрд╕реА рдЪрд┐рдк рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



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

рдкреАрдпрд░-рдЯреВ-рдкреАрдпрд░ рдореЛрдб

рджреЛ рдПрдирдПрдлрд╕реА рдбрд┐рд╡рд╛рдЗрд╕ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реАрдзреЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЫреЛрдЯреА рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмреНрд▓реВрдЯреВрде / рд╡рд╛рдИрдлрд╛рдИ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╛рд░реВрдк XML рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдореЛрдб рдореЗрдВ, EB рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЛрдб рдкрдврд╝реЗрдВ / рдкрдврд╝реЗрдВ

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



Android NFC рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдкрд░рд┐рдЪрдп

Android рджреЛ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд╕рд╛рде NFC рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ: android.nfc рдФрд░ android.nfc.techред
Android.nfc рдореЗрдВ рдореБрдЦреНрдп рд╡рд░реНрдЧ рд╣реИрдВ:
NfcManager: рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рдкрд╣рдЪрд╛рдиреЗ рдЧрдП NFC рдПрдбреЗрдкреНрдЯрд░ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗрд╡рд▓ рдПрдХ NFC рдПрдбрд╛рдкреНрдЯрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП NfcManager рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдбрд╛рдкреНрдЯрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП getDefaultAdapter рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
NfcAdapter рдПрдХ NFC рдПрдЬреЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдПрдХ PC рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдПрдбреЙрдкреНрдЯрд░ рдХреА рддрд░рд╣ред рдЗрд╕рдХреЗ рд╕рд╛рде, рдлреЛрди NFC рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП NFC рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рдПрдирдбреАрдИрдПрдл: рдПрдирдПрдлрд╕реА рдорд╛рдирдХ рдПрдирдПрдлрд╕реА рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдлреЙрд░реНрдореЗрдЯ (рдПрдирдбреАрдИрдПрдл) рдирд╛рдордХ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдорд╛рдЗрдо рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЕрд▓реНрдЯреНрд░рд╛-рд╢реЙрд░реНрдЯ рдЖрд░рдЯреАрдбреА рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдЬреИрд╕реЗ URL рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред NdefMessage рдФрд░ NdefRecord, NFC рдлрд╝реЛрд░рдо-рдбрд┐рдлрд╝рд╛рдЗрдВрдб рдбреЗрдЯрд╛ рдлреЙрд░реНрдореЗрдЯ рдХреЗ рд▓рд┐рдП NDEF рдХреЗ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирдореВрдиреЗ рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред
рдЯреИрдЧ: рдЬрдм рдХреЛрдИ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдПрдХ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╡рд╕реНрддреБ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд╢реЙрд░реНрдЯрдХрдЯ, рдореИрдк рдЗрддреНрдпрд╛рджрд┐, рддреЛ рдпрд╣ "рд▓реЗрдмрд▓" рдкреНрд░рдХрд╛рд░ рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рд▓рдХреНрд╖реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЖрдЧреЗ рд░рдЦрдХрд░ рдЕрдВрдд рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднреЗрдЬ рджреЗрддрд╛ рд╣реИред
Android.nfc.tech рдкреИрдХреЗрдЬ рдореЗрдВ рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрдкрд╡рд░реНрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпреЗ рдЙрдкрд╡рд░реНрдЧ рд▓реЗрдмрд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рддрдХрдиреАрдХ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ NfcA, NfcB, NfcF, MifareClassic рдЗрддреНрдпрд╛рджрд┐ред
рдЬрдм рдПрдирдПрдлрд╕реА-рд╕рдХреНрд╖рдо рдлреЛрди рдПрдХ рдЯреИрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ, рддреЛ рдбрд┐рд▓реАрд╡рд░реА рд╕рд┐рд╕реНрдЯрдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓рдХреНрд╖реНрдп рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдПрдХ рдкреИрдХреЗрдЯ рдмрдирд╛рддрд╛ рд╣реИред рдпрджрд┐ рдлреЛрди рдореЗрдВ рдХрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИрдВ рдЬреЛ рдЗрд╕ рд▓рдХреНрд╖реНрдп рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рдЬрд╛рдПрдЧреА рдЬреЛ рдЙрд╕реЗ рд╕реВрдЪреА рд╕реЗ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдЧреАред рд▓реЗрдмрд▓ рд╡рд┐рддрд░рдг рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рддреАрди рдкреНрд░рдХрд╛рд░ рдХреА рд▓рдХреНрд╖реНрдп рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ: NDEF_DISCOVERED, TECH_DISCOVERED, TAG_DISCOVEREDред
рдпрд╣рд╛рдВ рд╣рдо TECH_DISCOVERED рд╕реЗ ACTION_TECH_DISCOVERED рддрдХ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред Nfc_tech_filter.xml рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓реЗрдмрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рднреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рд╡рд░рдг Android рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЖрдВрдХрдбрд╝рд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЯреИрдЧ рдХрд╛ рдкрддрд╛ рдХреИрд╕реЗ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдПред



рдЙрджрд╛рд╣рд░рдг 1. рдкрдврд╝рдиреЗ / рд▓рд┐рдЦрдиреЗ рдХреЗ рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдирдПрдлрд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╡рд┐рдХрд╛рд╕ред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдПрдХ рдПрдирдПрдлрд╕реА рдЯреИрдЧ рдХреЗ рдкрдврд╝рдиреЗ / рд▓рд┐рдЦрдиреЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдПрдирдПрдлрд╕реА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдПрдирдПрдлрд╕реА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрди рдкрджреЛрдВ рдХреЛ AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВред

<uses-permission android:name="android.permission.NFC" /> 

рдПрд╕рдбреАрдХреЗ рдХрд╛ рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдЬрд┐рд╕реЗ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП 10 рд╣реИ, рдЗрд╕реЗ AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ

 <uses-sdk android:minSdkVersion="10"/> In the onCreate functionя╝Мyou can apply the NfcAdapterя╝Ъ public void onCreate(Bundle savedInstanceState) { тАжтАж adapter = NfcAdapter.getDefaultAdapter(this); тАжтАж } 

рдЕрдЧрд▓рд╛ рдЯрд╛рд░рдЧреЗрдЯ рдХреЙрд▓ рд░реАрдб рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдкреНрд░рд╕рд╛рд░рдг рд╕рдВрджреЗрд╢ NfcAdapter.ACTION_TAG_DISCOVERED рд╣реИ, рддреЛ рдЖрдк рдЬрд╛рдирдХрд╛рд░реА рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 @Override protected void onNewIntent(Intent intent){ if(NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())){ mytag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); // get the detected tag Parcelable[] msgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); NdefRecord firstRecord = ((NdefMessage)msgs[0]).getRecords()[0]; byte[] payload = firstRecord.getPayload(); int payloadLength = payload.length; int langLength = payload[0]; int textLength = payloadLength - langLength - 1; byte[] text = new byte[textLength]; System.arraycopy(payload, 1+langLength, text, 0, textLength); Toast.makeText(this, this.getString(R.string.ok_detection)+new String(text), Toast.LENGTH_LONG).show(); } } 

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

  If (mytag==Null){ тАжтАж } else{ тАжтАж write(message.getText().toString(),mytag); тАжтАж } private void write(String text, Tag tag) throws IOException, FormatException { NdefRecord[] records = { createRecord(text) }; NdefMessage message = new NdefMessage(records); // Get an instance of Ndef for the tag. Ndef ndef = Ndef.get(tag); // Enable I/O ndef.connect(); // Write the message ndef.writeNdefMessage(message); // Close the connection ndef.close(); } 

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝реА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХреЛрдИ рдХрд╛рд░реНрдп рд╢реБрд░реВ рдХрд░рдирд╛, рд▓рд┐рдВрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛, рдЖрджрд┐ред

рдЙрджрд╛рд╣рд░рдг 2. MifareClassic рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ NFC рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╡рд┐рдХрд╛рд╕

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо MifareClassic рдХрд╛рд░реНрдб рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рд▓реЗрдмрд▓ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред MifareClassic рдХрд╛рд░реНрдб рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ, рдЬреИрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рдкрд╣рдЪрд╛рди, рдмрд╕ рдЯрд┐рдХрдЯ, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ MifareClassic рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ, рднрдВрдбрд╛рд░рдг рдХреНрд╖реЗрддреНрд░ рдХреЛ 16 рдЬрд╝реЛрди рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ 4 рдмреНрд▓реЙрдХ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ 16 рдмрд╛рдЗрдЯреНрд╕ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЬрд╝реЛрди рдХреЗ рдЕрдВрддрд┐рдо рдмреНрд▓реЙрдХ рдХреЛ рдЯреНрд░реЗрд▓рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рд╕реНрдерд╛рдиреАрдп рд░реАрдб / рд░рд╛рдЗрдЯ рдХреБрдВрдЬреА рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ MifareClassic.KEY_DEFAULT рдХреЗ рдорд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, 00 рдпрд╛ FF рдХреЗ рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рджреЛ рдХреБрдВрдЬрд┐рдпрд╛рдБ, A рдФрд░ B, 6 рдмрд╛рдЗрдЯреНрд╕ рд▓рдореНрдмреА рд╣реИрдВред
Mifare рдХрд╛рд░реНрдб рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд╣реА рдХреБрдВрдЬреА рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреЛ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛рддреНрдордХ рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИ), рдФрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рднреАред

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.reno" android:versionCode="1" android:versionName="1.0" > <uses-permission android:name="android.permission.NFC" /> <uses-sdk android:minSdkVersion="14" /> <uses-feature android:name="android.hardware.nfc" android:required="true" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name="org.reno.Beam" android:label="@string/app_name" android:launchMode="singleTop" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.nfc.action.TECH_DISCOVERED" /> </intent-filter> <meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/nfc_tech_filter" /> </activity> </application> </manifest> 

рд░реЗрд╕ / xml / nfc_tech_filter.xml n

  <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <tech-list> <tech>android.nfc.tech.MifareClassic</tech> </tech-list> </resources> 

рдХреИрд╕реЗ рдПрдХ MifareClassic рдХрд╛рд░реНрдб рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг:

  private void processIntent(Intent intent) { Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); for (String tech : tagFromIntent.getTechList()) { System.out.println(tech); } boolean auth = false; MifareClassic mfc = MifareClassic.get(tagFromIntent); try { String metaInfo = ""; //Enable I/O operations to the tag from this TagTechnology object. mfc.connect(); int type = mfc.getType(); int sectorCount = mfc.getSectorCount(); String typeS = ""; switch (type) { case MifareClassic.TYPE_CLASSIC: typeS = "TYPE_CLASSIC"; break; case MifareClassic.TYPE_PLUS: typeS = "TYPE_PLUS"; break; case MifareClassic.TYPE_PRO: typeS = "TYPE_PRO"; break; case MifareClassic.TYPE_UNKNOWN: typeS = "TYPE_UNKNOWN"; break; } metaInfo += "Card typeя╝Ъ" + typeS + "n with" + sectorCount + " Sectorsn, " + mfc.getBlockCount() + " BlocksnStorage Space: " + mfc.getSize() + "Bn"; for (int j = 0; j < sectorCount; j++) { //Authenticate a sector with key A. auth = mfc.authenticateSectorWithKeyA(j, MifareClassic.KEY_DEFAULT); int bCount; int bIndex; if (auth) { metaInfo += "Sector " + j + ": Verified successfullyn"; bCount = mfc.getBlockCountInSector(j); bIndex = mfc.sectorToBlock(j); for (int i = 0; i < bCount; i++) { byte[] data = mfc.readBlock(bIndex); metaInfo += "Block " + bIndex + " : " + bytesToHexString(data) + "n"; bIndex++; } } else { metaInfo += "Sector " + j + ": Verified failuren"; } } promt.setText(metaInfo); } catch (Exception e) { e.printStackTrace(); } } 

рд▓реЗрдЦрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ

рд╕реЛрдВрдЧрдпреБ рд╡рд╛рдВрдЧ рдФрд░ рд▓рд┐рдпрд╛рдВрдЧ рдЭрд╛рдВрдЧ рдЗрдВрдЯреЗрд▓ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдПрдВрдб рд╕рд░реНрд╡рд┐рд╕ рдЧреНрд░реБрдк рдХреЗ рдЗрдВрдЬреАрдирд┐рдпрд░ рд╣реИрдВ рдЬреЛ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ x86 рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

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


All Articles