咨询一下大家,3.8.2 可以获取到设备唯一ID吗
获取不到的话,一般要怎么做这个唯一ID呢
1赞
android 的话 可以获取Google Play Services 的 Advertising ID 或者 Firebase 的 Instance ID 或者 MediaDrm.getPropertyString 或者Android ID或者可以自己生成个UUID保存 然后JSB通信 选个喜欢的 @xyxdasnjss
import com.google.android.gms.ads.identifier.AdvertisingIdClient;
import com.google.android.gms.ads.identifier.AdvertisingIdInfo;
public String getAdvertisingId(Context context) {
try {
AdvertisingIdInfo advertisingIdInfo = AdvertisingIdClient.getAdvertisingIdInfo(context);
return advertisingIdInfo.getId();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
import com.google.firebase.iid.FirebaseInstanceId;
public String getFirebaseInstanceId(Context context) {
return FirebaseInstanceId.getInstance().getId();
}
import android.media.MediaDrm;
public String getUniquePseudoId(Context context) {
try {
MediaDrm mediaDrm = new MediaDrm(MediaDrm.PROPRIETARY_WIDEVINE);
byte[] widevineData = mediaDrm.getPropertyByteArray(MediaDrm.PROPERTY_DEVICE_UNIQUE_ID);
String widevineId = new String(widevineData, "UTF-8");
mediaDrm.release();
return widevineId;
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
import android.os.Build;
public class UniqueIdHelper {
public static String getUniqueId() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
// 对于Android 10及以上版本
String serial = Build.getSerial();
if (serial != null && !serial.isEmpty()) {
return serial;
}
}
return Secure.getString(context.getContentResolver(), Secure.ANDROID_ID);
}
}
3赞
好的,多谢大佬。
生成一个256位的随机数,你信不信它就是唯一的
https://docs.unity3d.com/cn/2022.3/ScriptReference/SystemInfo-deviceUniqueIdentifier.html
Unity是这样子的API,Cocos好像是没有相应的API,只能自己参考Unity这个自己实现了
自己实现的话,都要基于后面的 android 工程/ iOS 工程 / Win 工程。

android 国内 用移动安全联盟的oaid sdk 可以获得; ios 本来就有;自己写java代码和oc代码接入就可以了