آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

شناسه منحصر به فرد برای تعیین هویت دستگاه

Reza  8 سال پیش  8 سال پیش
0 0

سلام

    من میخوام در برنامم ، علاوه بر اینکه بازار میاد در هر بار اجرای برنامه ، درون پرداخت رو چک میکنه ، منم از طریق سرورم وضعیت خرید رو چک کنم ( با استفاده از IMEI ) . ولی بعد فهمیدم که IMEI رو هر دستگاهی نداره ( خیلی از تبلت ها که سیم کارت خور نیستن ) ، این لینک رو هم خوندم و استاد اطلاعات خوبی توش قرار دادن و تلاش بر این بوده که یه چیز منحصر به فرد رو از دستگاه خارج کنن . ولی در مورد شماره سریال دستگاه چیزی ذکر نشده !

    من فکر میکردم شماره سریال همون IMEI هست ، ولی بعد دیدم در اندروید کد استخراج هر کدوم فرق میکنه ، گفتم تست کنم ببینم هر کدوم چی میده بیرون ! تست کردم و متفاوت بود !

 

    سوالم اینه که :

اگه شماره سریال دستگاه با IMEI فرق داره ، و با توجه به اینکه شماره سریال رو هر دستگاهی داره ، پس این میتونه یه شماره منحصر به فرد باشه دیگه ؟ درسته ؟

و اگه جواب منفی هست ، پس چه چیزی رو شما پیشنهاد میدین برای اینکه هر دستگاه رو تشخیص بدیم و یه چیز یکتا از هر کدوم استخراج کنیم ؟

ممنون .

 برای این سوال 2 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
Criss  8 سال پیش
+2 0

باید یک کد یکتا درست کنید ، خیلی از دستگاه ها مک آدرس رو نمیدهند و خیلی ها IMEI ندارند میتونید بصورت زیر استفاده کنید :

 public static String getUUID() {
        TelephonyManager telephonyManager = (TelephonyManager) G.context.getSystemService(Context.TELEPHONY_SERVICE);
        WifiManager manager = (WifiManager) G.context.getSystemService(Context.WIFI_SERVICE);
        WifiInfo info = manager.getConnectionInfo();
        String macAddress = info.getMacAddress();

        String imei = telephonyManager.getDeviceId();
        String imsi = telephonyManager.getSubscriberId();
        String androidID = Secure.getString(G.context.getContentResolver(), Secure.ANDROID_ID);
        return imei + "-" + macAddress + "-" + androidID;
    }

androidID بعد از ریستارت شدن یا فکر کنم ریست فکتوری شدن عوض میشه ! (تجربه داشتم بعد از تمام شدن باطری و خاموش شدن گوشیم این اتفاق افتاد روی HTC ) و در مورد imsi  به اندازه کافی سرچ نکردم ! اما روی سرور فعلا این رو استفاده میکنم و به اندازه کافی داره خوب جواب میده

 

0 0
ممنون ، درسته ، androidID تغییر میکنه پس نمیشه اونو دخالت داد . الان شما از همین کد بالا استفاده میکنید ؟ مگه نمیگید androidID تغییر میکنه ؟ پس چرا استفاده میکنید ؟ (8 سال پیش)
پاسخ به سوال 
Criss  8 سال پیش
+1 0

 پاسخ صحیح

معمولا تا زمانی گوشی روشن هست و داره کار میکنه androidID تغییر نمیکنه و این مدت هم به اندازه کافی مناسب هست توی همون مدت که روشن هست میشد عملیات رو انجام داد و مشکلی پیش نمیومد ! چنتا فاتور مهم رو باید از کاربر بگیرید مثلا اینکه کاربر روت هست ؟ اخرین زمان فعالیت کاربر در برنامه و androidID رو داشته باشید اما میتونید همیشه استفاده نکنید مگر زمانی که IMEI نداشته باشید و مقدار Null و یا کاملا خالی هست ، ولی چیزی که من تجربه کردم تا 3200 کاربر هیچ مشکلی در استفاده از androidID نبود ، و فقط یک مورد تغییر در androidID بود که قابل تشخیص بود چون اون دستگاه IMEI داشت ولی خیلی زیاد کاربر هایی بودند که مشکل داشتند و مقادیر به این صورت بود : null-null-c15d6d8c75fe6a15 که فقط اندروید ایدی داریم ! و یا به این صورت 00000000000000-null-26e642e9b9766ba9 که مقدار IMEI کاملا 0 هست و یا null-08:00:27:ae:4d:4f-8f24feca9e77bbd9 ،  اونجاهایی که IMEI نیست باید حساس شد

برای تغییر androidID بصورت زیر ممکن هست و همچنین MacAddress اگر وافای خاموش باشه داده نمیشه !

 How to Change Android id Without Root | Non Root :



    Open Your Phone’s Settings
    Scroll Down & Click on Phone or Device
    You Will See Backup And reset,
    Then Click On Factory Data reset.Android Id change factory reset

    And Reset your Phone, It will change Your Android Id

در مورد کاری که میخاید انجام بدید باید بیشتر فکر کنید و ببینید چقد میتونه توی کارتون اختلال ایجاد کنه ولی چیزی که بصورت تجربه کسب میکنید واقعا متفاوت از چیزی هست که از قبل دارید طراحی میکنید ! و میبینید که کارتون داره انجام میشه

در مورد آموزش استاد در قسمت DeviceInfo میشه قسمت هایی ثابت از گوشی رو هم استفاده کرد مثلا مدل گوشی و یا Board یکسری از مقادیر ممکنه ثابت باشند که با درکنار هم گذاشتن اونها میشه کد رو یکتا کرد ( البته سرچ نکردم که توی چه شرایطی میشه تغییرشون داد ) مثلا بصورت زیر

 HTC-board46-IEMI-MAC-ANDROIDID

بعد اگر IMEI نداشتید سایر قسمت هارو استفاده کنید


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .