دریافت شناسه یکتا دستگاه اندروید در بیسیک۴اندروید
💡 در برنامه نویسی اندروید یکی از موضوعاتی که بهش برخورد میکنیم دریافت یک شناسه یا ایدی یکتا و تکرارنشدنی از کاربر(در دستگاه اندروید) هست که در مواقع مختلف از جمله احراز هویت کاربران مورد استفاده قرار میگیره. با توجه به تغییرات روز به روزِ سیستم عامل اندروید ما اینجا سعی کردیم جدیدترین روش هارو برای دریافت شناسه یونیک در محیط Basic4Android قرار بدیم.
❗️❗️ توجه: دریافت شماره سریال یا IMEI دستگاه با دسترسی READ_PHONE_STATE از اندروید ۱۰ به بعد امکانپذیر نیست!
✅ روش های دیگه برای دریافت شناسه ی یکتا
همونطور که اشاره شد از اندروید ۱۰ به بعد حتی با دریافت دسترسی از کاربر امکان دریافت IMEI دستگاه وجود نداره، بنابراین برای دریافت یک شناسه ی منحصر بفرد میتونیم از روش های زیر استفاده کنیم.
* روش اول: دریافت Android_Id
۱- کتابخانه Phone رو تیک بزنید
۲- با کد زیر شناسه ی دستگاه اندرویدی رو بدون هیچ دسترسی ای دریافت کنید:
'دریافت شناسه یکتا با اندروید ایدی Dim phn As Phone Log( phn.getSettings("android_id") )
در این روش یک شناسه ی تکرار نشدنی با فرمت روبرو دریافت می کنید: eef427ed02678fee
* روش دوم: دریافت Advertising Id یا شناسه ی تبلیغات ادموب
۱- کتابخانه FirebaseAdmob رو تیک بزنید
۲- کد زیر رو به منیفست اضافه کنید:
CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)
۳- کد های زیر رو خارج از Sub های ماژول مورد نظرتون پیست کنید:
Private Sub GetAdvertisingId As ResumableSub Dim jo As JavaObject = Me jo.RunMethod("GetAdvertisingId", Null) Wait For AdvertisingId_Ready (Success As Boolean, Id As String) Return Id End Sub #if Java import java.util.concurrent.Callable; import com.google.android.gms.ads.identifier.AdvertisingIdClient; import com.google.android.gms.ads.identifier.AdvertisingIdClient.Info; public static void GetAdvertisingId() { BA.runAsync(processBA, mostCurrent, "advertisingid_ready", new Object[] {false, ""} , new Callable<Object[]>() { @Override public Object[] call() throws Exception { String id = AdvertisingIdClient.getAdvertisingIdInfo(mostCurrent).getId(); return new Object[] {true, id}; } }); } #End If
۴- با کد زیر یک شناسه ی تکرار نشدنی بدون نیاز به دسترسی دریافت کنید:
'دریافت شناسه یکتا با '*ایدی تبلیغات* Wait For (GetAdvertisingId) Complete (Id As String) If Id <> "" Then Log(Id) 'شناسه End If
در این روش هم بدون اینترنت یک شناسه ی تکرار نشدنی با فرمت روبرو دریافت می کنید: b36bf4fc-8cc6-4g00-88ae-d06132791751
✏️ منبع: کافه توسعه