پنج روش برای User Identification در اندروید

پنج روش برای User Identification در اندروید

  • ۱۳۹۸/۱۲/۰۶
  • 282

پنج روش برای User Identification در اندروید


سلام به همه همراهان همیشگی پایگاه تخصصی پیشرفت

اگر برنامه نویسی اندروید انجام میدین، حتما براتون پیش اومده که خواسته باشین شناسه‌ی منحصر به فردی برای کاربران‌تون تولید کنین. امروز می خواهیم ۵ روش برای دریافت و ساخت شناسه ی منحصر به فرد برای کاربران رو به شما معرفی کنیم.

مواقع مختلفی ممکنه پیش بیاد که نیاز داشته باشیم تا دستگاه کاربران‌مون رو با شناسه های منحصر به فردی از همدیگه تشخیص بدیم، مثلا:

  • برای ذخیره‌ی امتیاز و اطلاعات کاربر در سمت سرور
  • آنالیز و بررسی تعداد نصب‌ها برای یک اپلیکیشن
  • جلوگیری از نصب شدن یک اپ روی چندین دستگاه مختلف
  • محدود کردن نصب یک اپ روی بعضی های گوشی‌های خاص
  • و موارد مختلف زیاد دیگه

راه‌های مختلفی برای انجام اینکار وجود داره ولی باید بگم هیچکدومشون به اندازه‌ی کافی “عالی” نیست! بنابراین ممکنه هر کدوم از راه‌ها برای حالات مختلفی خوب باشه و برای بعضی حالت ها نه.

۱- استفاده از Telephony Service موبایل کاربر:

اگر کاربران اپلیکیشن شما از “موبایل” استفاده می کنند ( و نه تبلت! )، استفاده از Telephony Service گزینه ی خوبی برای شماست…

با استفاده از Telephony Service می تونید شماره‌های منحصر به فردی مثل IMEI, MEID, ESN و IMSI رو به راحتی به دست بیارید.

نکته‌ی مهمی که باید درنظر داشته باشین اینه که برای استفاده از این سرویس، نیاز دارید که دسترسی android.permission.READ_PHONE_STATE رو از کاربر دریافت کنین!

قانع کردن کاربران برای دادن این دسترسی مهم به اپلیکیشن شما کار ساده ای نیست…

همچنین Telephony Service روی بعضی از تبلت ها وجود ندارد، بنابراین این طیف از کاربران را از دست می دهید.

شاید دوست داشته باشید بخوانید:  رادیکال فان | قسمت اول؛ بررسی یک چالش جذاب ریاضی!

اما نگران نباشید، هنوز چند روش دیگه داریم 🙂

۲- استفاده از مک آدرس (MAC Address) موبایل کاربر:

با قاطعیت نسبتا خوبی میشه اینطور درنظر گرفت که همه ی دیوایس های اندرویدی، وای فای و بلوتوث دارند 🙂

پس برای دریافت یک شناسه‌ی منحصر به فرد، میتونید از مک آدرس این دو ماژول استفاده کنید. فقط باید این نکته رو درنظر داشته باشید که اگه بلوتوث یا وای فای دستگاه کاربر خاموش باشه، مک آدرسی وجود نخواهد داشت 🙁

۳- استفاده از android.os.Build.SERIAL موبایل کاربر:

راه دیگه‌ای که از نسخه ۲٫۳ اندروید به این سیستم عامل اضافه شده، استفاده از android.os.Build.SERIAL هست که می تونید برای دریافت یک آی‌دی منحصر به فرد ازش استفاده کنین. خوبی این روش این هست که برای تبلت ها و دستگاه هایی که Telephony Service ندارد هم کار میکند اما نکته ی منفی در این است که بعضی دستگاه هایی که سریال نامبر ندارد در این روش به اشکال بر می خورند!

۴- استفاده از Settings.Secure.ANDROID_ID:

این روش، نسبتا روش خوبیست. وقتی یک دستگاه اندرویدی بوت می شود، سیستم‌عامل یک شماره‌ی رندوم تولید کرده و آن را ذخیره می کند. این شماره‌ی ۶۴بیتی تا زمانی که کاربر دستگاه خود را به تنظیمات کارخانه برنگرداند ثابت باقی می ماند و از طریق Settings.Secure.ANDROID_ID قابل دسترسی است. نکته ی قابل ذکر اینجاست که این روش هم به طور ۱۰۰درصد قابل اعتماد نیست!

۵- استفاده از پیشنهاد آقای Reto Meier از Google:

از اونجایی که دریافت یک شناسه ی منحصر به فرد برای هر کاربر یک نیاز متداول در خیلی از اپلیکیشن هاست، استفاده از UUID رو به شما پیشنهاد می کنیم. این روش که توسط Reto Meier  از  Google در یکی از ارائه های  Google I/O معرفی شد، به شکل زیر است:

شاید دوست داشته باشید بخوانید:  چطور برنامه نویس بدی به نظر برسیم؟

متد ()UUID.randomUUID یک آی‌دی منحصر به فرد برای یک نصب تولید می کنه که کافیه اون رو در جایی ذخیره کنید و بعدا برای شناسایی کاربران مختلف از این آی‌دی‌ها استفاده کنید.

حتی می تونید این آی‌دی رو برای کاربر در جایی ذخیره کنید تا بعد از نصب اپلیکیشن روی یک دستگاه دیگه، کاربر رو با همین آی‌دی شناسایی کنید (مثلا در اولین نصب، این کد رو در سمت سرور ذخیره کنید و بعد از نصب شدن اپ روی گوشی دیگه توسط همین کاربر، بعد از لاگین شدن، این آی‌دی رو در سمت اپلیکیشن دریافت و ذخیره کنین)

جمع‌بندی

شناسایی دستگاه‌ها در زمینه تولید اپ‌های اندرویدی کار ساده‌ای نیست. حتی شاید بشه دلایل قابل قبولی هم برای “خوب نبودن” این کار آورد. به نظر میاد به جای شناسایی دستگاه های مختلف، شاید اگر به شناسایی نصب‌های‌مختلف بپردازیم بهتر باشه که برای اینکار میتونید از همون روش UUID استفاده کنید. به هرحال اگر جایی نیاز به شناسایی “دستگاه” های مختلف از همدیگه داشتین، روشی که از بقیه ی روش ها بهتره شاید استفاده از ANDROID_ID باشه (مورد چهارم)… راه ۱۰۰درصدی‌ای نیست ولی خوبه!

شاید دوست داشته باشید بخوانید:  هوش مصنوعی به لوگوی شما امتیاز می دهد

ممنون از اینکه وقت گذاشتید و تا انتها با هامون همراه بودین.

منتظر نظرات شما هستیم.

موفق باشید

یاعلی


برچسب ها:

دسته: اندروید ، برنامه نویسی ، نکته و ترفند


درباره نویسنده


علی 110

علی 110

مدیر وبسایت هستم و علاقه مند به یادگیری! پایگاه تخصصی پیشرفت محل انتشار مطالب، آموزش ها و محصولات در زمینه های برنامه نویسی، گرافیک، هوش مصنوعی، پردازش تصویر و... است. امیدواریم لحظات خوبی رو در پایگاه تخصصی پیشرفت بگذرونید. یاعلی


دیدگاه بگذارید

avatar