گرفتن Unique ID بدون تغییر در بیسیک4اندروید
208
۲ سال پیش
0

گرفتن Unique ID بدون تغییر در بیسیک4اندروید

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

امروز داشتم توی سایت بیسیک میگشتم اتفاقی یه پستی دیدم که کدی رو منتشر کرده بود که میشد باهاش یه unique id بگیری.

همونطور که میدونید با android_id هم میشه گرفت ولی اگه گوشی ریست فکتوری بشه این کد از بین میره و بدرد نمیخوره.

ولی این کدی که توی پست پیدا کردم حتی با ریست فکتوری هم از بین نمیره و یه روزنه برای پروژه ایی س که کد یونیک میخوان.

هر چند میشه با یه سری چیزا این کارو انجام داد مثل شماره موبایل یا ایمیل.

ولی موبایل که هزینه اضافی داره و ایمیل هم که همه ندارن البته تا یکی دو سال دیگه حتما همه خواهند داشت چون کم کم همه دارن میرن سمت گوگل استور.

مهمترین مزیت این کدی که میخوام بگم اینه که اصلا پرمیشن خاصی نمیخواد ینی اصلا پرمیشن نمیخواد چه برسه به خاص بودن.

این کد توی اندروید 10 هم تست شده و امتحانشو پس داده.

اگه مشکلی داشت پایین نظرتون رو بفرستید تا پیگیر باشم ببینم چیه داستان.

کد زیر رو توی بیسیک4اندروید کپی کنید و با تابع GETUniqueID آی دی رو بگیرید/p>

Sub GETUniqueID As String
    Dim JO As JavaObject
 Dim ID As String
 JO.InitializeContext
 ID = JO.RunMethod("getUniqueID", Null)
 Log(ID)
 Return ID
End Sub

#If Java
import android.media.MediaDrm;
import android.os.Build;
import android.telephony.TelephonyManager;
import android.content.*;
import java.util.*;

//private final Context context;
private TelephonyManager tm; // = (TelephonyManager) BA.applicationContext.getSystemService(Context.TELEPHONY_SERVICE);
private String initialVal = "";


public String getUniqueID() {
   UUID wideVineUuid = new UUID(-0x121074568629b532L, -0x5c37d8232ae2de13L);
   try {
      MediaDrm wvDrm = new MediaDrm(wideVineUuid);
      byte[] wideVineId = wvDrm.getPropertyByteArray(MediaDrm.PROPERTY_DEVICE_UNIQUE_ID);
      Base64.Encoder enc = Base64.getEncoder();
      String encodedUid = enc.encodeToString(wideVineId);
      return encodedUid;
   } catch (Exception e) {
      return initialVal;
   }
}

#End If

برچسب ها :
  • بیسیک4اندروید
نظر خود را بنویسید...