рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдерд╛рдкрдирд╛ рдЯреНрд░реИрдХрд┐рдВрдЧ

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


рд╕реНрдерд╛рдкрдирд╛ рдЯреНрд░реИрдХрд┐рдВрдЧ


рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдХрдИ рдХрд╛рд░рдг рд╣реИрдВред рдХреБрдЫ рдмрд╕ TelephonyManager.getDeviceId () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ: рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдЖрдИрдбреА рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИред рджреВрд╕рд░реЗ, рднрд▓реЗ рд╣реА рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдореВрд▓реНрдп рддрдерд╛рдХрдерд┐рдд "рдлрд╝реИрдХреНрдЯрд░реА рд░реАрд╕реЗрдЯ" (рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛) рд╕реЗ рдмрдЪ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЕрдВрддрддрдГ рдПрдХ рдЕрдкреНрд░рд┐рдп рддреНрд░реБрдЯрд┐ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЦрд░реАрджрд╛рд░ / рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдпрд╣ рдХреЛрдИ рдФрд░ рд╣реИред

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

public class Installation { private static String sID = null; private static final String INSTALLATION = "INSTALLATION"; public synchronized static String id(Context context) { if (sID == null) { File installation = new File(context.getFilesDir(), INSTALLATION); try { if (!installation.exists()) writeInstallationFile(installation); sID = readInstallationFile(installation); } catch (Exception e) { throw new RuntimeException(e); } } return sID; } private static String readInstallationFile(File installation) throws IOException { RandomAccessFile f = new RandomAccessFile(installation, "r"); byte[] bytes = new byte[(int) f.length()]; f.readFully(bytes); f.close(); return new String(bytes); } private static void writeInstallationFile(File installation) throws IOException { FileOutputStream out = new FileOutputStream(installation); String id = UUID.randomUUID().toString(); out.write(id.getBytes()); out.close(); } } 


рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдкрд╣рдЪрд╛рди


рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдк рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп, рдпрд╣ рдХрд╛рд░реНрдп рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред

рдкрд╣рд▓реЗ, рдЬрдм рд╣рд░ Android рдбрд┐рд╡рд╛рдЗрд╕ рдПрдХ рдлреЛрди рдерд╛, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдерд╛: TelephonyManager.getDeviceId () рд╡рд┐рдзрд┐ рдиреЗ рдлреЛрди рдХреЗ IMEI , MEID рдпрд╛ ESN рдХреЛ рд▓реМрдЯрд╛ рджрд┐рдпрд╛, рдЬреЛ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рдереАред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ:

рдореИрдХ рдкрддрд╛


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

рдХреНрд░рдорд╛рдВрдХ рд╕рдВрдЦреНрдпрд╛


Android 2.3 (рдЬрд┐рдВрдЬрд░рдмреНрд░реЗрдб) рд╕реЗ, рдЖрдк android.os.Build.SERIAL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред 2.3 рд╕реЗ рдиреАрдЪреЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рд▓реЛрдкрд╛рдЯреЙрдЗрдб рдиреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред

ANDROID_ID


рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдпрд╣ Settings.Secure.ANDROID_ID рд╣реИ ред рдпрд╣ 64-рдмрд┐рдЯ рдорд╛рди рд╣реИ рдЬреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдмреВрдЯ рдХрд░рдиреЗ рдкрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рддрдм рд░реАрд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдлреИрдХреНрдЯрд░реА рд░реАрд╕реЗрдЯ, рдЖрджрд┐)

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

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


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

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

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


All Articles