دریافت شناسه یکتا دستگاه اندروید در بیسیک۴اندروید


دریافت شناسه یکتا دستگاه اندروید در بیسیک۴اندروید
۱۹ فروردین ۱۳۹۹
2981 بازدید
نویسنده:

💡 در برنامه نویسی اندروید یکی از موضوعاتی که بهش برخورد میکنیم دریافت یک شناسه یا ایدی یکتا و تکرارنشدنی از کاربر(در دستگاه اندروید) هست که در مواقع مختلف از جمله احراز هویت کاربران مورد استفاده قرار میگیره. با توجه به تغییرات روز به روزِ سیستم عامل اندروید ما اینجا سعی کردیم جدیدترین روش هارو برای دریافت شناسه یونیک در محیط 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

 

 

 


✏️ منبع: کافه توسعه


 


آموزش برنامه نویسی اندروید

نمونه سورس کدهای بالا

حجم فایل: 10 کیلوبایت

فرمت فایل: ZIP

منبع: کافه توسعه


پژمان نیکروان
پژمان نیکروان

پژمان نیکروان هستم؛ مدیر وب سایت کافه توسعه، شروع فعالیتم به برنامه نویسی از سال 1392 بوده و هدف از ایجاد وبسایت اشتراک گذاری تجارب خودم و دیگر برنامه نویسان هست.

ارسال دیدگاه

می توانید از تگ های HTML نیز استفاده کنید :
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

دیدگاه های مطلب:
Profile Comment
قاسمی

سلام،
من میخواهم از روش کتابخانه phone استفاده کنم.
آیا جعل نمیشه؟
همچنین تغییری نمیکنه؟(مثلا با آپدیت اندروید و…)
و اینکه در اندروید ۱۰ و ۱۱ کار میکنه؟

پاسخ دادن

7 اسفند 1399

    Profile Comment
    پژمان نیکروان

    سلام خیر مشکلی نداره استفاده کنید.
    بله کار میکنه
    اما اینکه با آپدیت جدید اندروید مثلا در اندروید های ۱۲ ۱۳ و… آیا این android_id با کتابخانه Phone کار کنه یانه رو هیچکس نمیتونه الآن بفهمه. اگر از کار بیوفته باید اپلیکیشن تون رو آپدیت کنید.

    پاسخ دادن

    8 اسفند 1399

Profile Comment
حمید

سلام
هر دو شناسه یونیک هستن؟ یعنی هیچ دستگاه اندرویدی شناسه یه دستگاه دیگه رو نداره؟

پاسخ دادن

21 فروردین 1399

19 فروردین 1399

Profile Comment
امیر حسین

این شناسه ها به چه دردی میخوره ؟

مثلا میشه از این ها در دیتابیس آنلاین برای ثبت میزان ویو یک پست استفاده کرد ؟

پاسخ دادن

19 فروردین 1399