这不是我想要的答案,但经过进一步研究,“中国第一家也是最大的独立移动广告平台”游米确实有一个开源类,他们做了AppsFlyerDeviceInfoUtils
推荐的一切,也就是谷歌的一切反对。
具体来说,对于每个请求,他们都会发送:telephonyManager.getDeviceId();
(GSM 手机上的 IMEI)、telephonyManager.getSubscriberId()
(GSM 手机上的 IMSI)、MAC 地址和ANDROID_ID
. 同样,前两个需要提示用户允许应用程序“拨打和管理电话”,这非常令人毛骨悚然(导致应用程序评级不佳和/或权限被拒绝)。后两者曾经可以工作,但就 Oreo 而言,它们不再是唯一的设备,正如我在问题陈述中提到的那样。
更新:我现在已经下载了小米的 Mimo SDK(广告 SDK)。反编译显示一个类AdvertisingIdHelper
,它只有两个方法,一个是检查设备是否安装了 Google Play 商店,另一个看起来像这样:
private static d z(Context paramContext)
{
if (!y(paramContext)) {
return null;
}
try {
d localD = new d();
Intent localIntent = new Intent("com.google.android.gms.ads.identifier.service.START");
localIntent.setPackage("com.google.android.gms");
if (paramContext.bindService(localIntent, localD, 1))
return localD;
} catch (SecurityException localSecurityException) {
com.miui.zeus.a.a.b("stacktrace_tag", "stackerror:", localSecurityException);
return null;
}
return null;
}
它在整个 SDK 中的作用尚不清楚,但它绝对是一种查询 Google 的广告 ID 而不是小米的替代 ID 的方式。如果这适用于所有情况,或者仅适用于在中国境外销售的设备(确实有 Google Play 服务),则再次不清楚。