Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于尝试移动安全联盟的接口去获取的判断问题 #47

Open
vivian688 opened this issue Mar 24, 2022 · 16 comments
Open

关于尝试移动安全联盟的接口去获取的判断问题 #47

vivian688 opened this issue Mar 24, 2022 · 16 comments

Comments

@vivian688
Copy link

class MsaImpl implements IOAID {
private final Context context;

public MsaImpl(Context context) {
    this.context = context;
}

@Override
public boolean supported() {
    if (context == null) {
        return false;
    }
    try {
        PackageInfo pi = context.getPackageManager().getPackageInfo("com.mdid.msa", 0);
        return pi != null;
    } catch (Exception e) {
        OAIDLog.print(e);
        return false;
    }
}

这里为何是判断是否存在包"com.mdid.msa",我往demo加了个oaid_1.0.25版本,试了几部手机都是返回不支持。

@liyujiang-gzu
Copy link
Member

liyujiang-gzu commented Mar 26, 2022

这里为何是判断是否存在包"com.mdid.msa",我往demo加了个oaid_1.0.25版本,试了几部手机都是返回不支持。

因为获取OAID是通过手机ROM自带的一个Service,也就是“com.mdid.msa.service.MsaIdService”,如果手机上没有“com.mdid.msa”包,那就说明不存在“MsaIdService”,自然也就不支持获取OAID,这和“oaid_1.0.25”这个SDK是无关的。

相当于“com.mdid.msa”是服务端,“oaid_1.0.25”是客户端,没有运行服务端,客户端是获取不到的。

@vivian688
Copy link
Author

原来是这样,感谢回复。试了国内大部分机型貌似都不支持这个

@liyujiang-gzu
Copy link
Member

原来是这样,感谢回复。试了国内大部分机型貌似都不支持这个

国内的那几大手机厂商,要android10+才支持

@marchlqq
Copy link

我这集成 “oaid_1.0.25”,通过调用接口,是可以获取到服务的,但是没有 你说的,“com.mdid.msa”是服务端。就是没有这个包,这怎么解释呢?它生存的oaid不靠谱吗?我试过卸载重装,生成的oaid数据,还是一致的,没有变化。

@marchlqq
Copy link

原来是这样,感谢回复。试了国内大部分机型貌似都不支持这个

国内的那几大手机厂商,要android10+才支持

你写的这些反射服务,例如oppo的,
image
厂商会不会改变呢?而且也是依赖包的,com.heytap.openid,这个包你是通过什么方式得到的?
参考的umeng的sdk 代码吗?com.umeng.umsdk:oaid_oppo:1.0.4

@liyujiang-gzu
Copy link
Member

原来是这样,感谢回复。试了国内大部分机型貌似都不支持这个

国内的那几大手机厂商,要android10+才支持

你写的这些反射服务,例如oppo的, image 厂商会不会改变呢?而且也是依赖包的,com.heytap.openid,这个包你是通过什么方式得到的? 参考的umeng的sdk 代码吗?com.umeng.umsdk:oaid_oppo:1.0.4

最初是参考北京数字联盟公开的代码,后来反编译参考了一些其他SDK:https://github.com/shuzilm-open-source/Get_Oaid_CNAdid

@liyujiang-gzu
Copy link
Member

我这集成 “oaid_1.0.25”,通过调用接口,是可以获取到服务的,但是没有 你说的,“com.mdid.msa”是服务端。就是没有这个包,这怎么解释呢?它生存的oaid不靠谱吗?我试过卸载重装,生成的oaid数据,还是一致的,没有变化。

生成的问题不大吧,自己生成我倒是写了个getGUID,不过这个GUID在Android10+APP卸载后会被清掉,需要结合服务端来配合硬件信息识别。

@marchlqq
Copy link

就是没有这个包,“com.mdid.msa”,
我通过 “oaid_1.0.25”,也是可以获取到oaid,但是你不是通过,

@marchlqq
Copy link

image
,运行的 MsaIdService,获取的吗?这个我验证是不行的。

@marchlqq
Copy link

还有一个问题,如果oaid,获取不到,通过 手机配置,生成的oaid,是可能存在重复的。那不如直接 使用 GUID呢?有没有手机配置的方式,合成,然后存在唯一的方式呢?
image

@marchlqq
Copy link

我现在的做法是,但是我h shi还是担心,同设备的手机,会存在相同。目前还没验证。
通过 imei、androidid、serial、mac地址(可能为空)、还有设备其他信息。

image

image

@liyujiang-gzu
Copy link
Member

OAID目前肯定是适配不了所有机型的,旧版手机及有些小众手机厂商并不支持。如果对唯一ID的稳定性、可靠性要求很高,比较好的解决办法是结合服务端,把所有可能采集到的ID都采集存到服务端,由服务判别下发唯一ID,具体可以参考这位兄弟的思路:https://github.com/BillyWei01/Udid

@marchlqq
Copy link

OAID目前肯定是适配不了所有机型的,旧版手机及有些小众手机厂商并不支持。如果对唯一ID的稳定性、可靠性要求很高,比较好的解决办法是结合服务端,把所有可能采集到的ID都采集存到服务端,由服务判别下发唯一ID,具体可以参考这位兄弟的思路:https://github.com/BillyWei01/Udid

嗯,这个我之前也看过了,通过上传是一个思路,但是实际上,这也是没有用的。都区分不出来了,上传上去,服务端也无法下发。主要是方案上面都是可能存在相同的案例。所以,oaid获取不到,不敢使用其他方式生成的id,稳定和唯一,不共存吧。获取不到,使用随机码生成,反而是最靠谱的。

@liyujiang-gzu
Copy link
Member

OAID目前肯定是适配不了所有机型的,旧版手机及有些小众手机厂商并不支持。如果对唯一ID的稳定性、可靠性要求很高,比较好的解决办法是结合服务端,把所有可能采集到的ID都采集存到服务端,由服务判别下发唯一ID,具体可以参考这位兄弟的思路:https://github.com/BillyWei01/Udid

嗯,这个我之前也看过了,通过上传是一个思路,但是实际上,这也是没有用的。都区分不出来了,上传上去,服务端也无法下发。主要是方案上面都是可能存在相同的案例。所以,oaid获取不到,不敢使用其他方式生成的id,稳定和唯一,不共存吧。获取不到,使用随机码生成,反而是最靠谱的。

我之前的项目使用是,优先使用OAID和IMEI,这两个获取不到的话就使用自己生成的GUID。

@marchlqq
Copy link

OAID目前肯定是适配不了所有机型的,旧版手机及有些小众手机厂商并不支持。如果对唯一ID的稳定性、可靠性要求很高,比较好的解决办法是结合服务端,把所有可能采集到的ID都采集存到服务端,由服务判别下发唯一ID,具体可以参考这位兄弟的思路:https://github.com/BillyWei01/Udid

嗯,这个我之前也看过了,通过上传是一个思路,但是实际上,这也是没有用的。都区分不出来了,上传上去,服务端也无法下发。主要是方案上面都是可能存在相同的案例。所以,oaid获取不到,不敢使用其他方式生成的id,稳定和唯一,不共存吧。获取不到,使用随机码生成,反而是最靠谱的。

我之前的项目使用是,优先使用OAID和IMEI,这两个获取不到的话就使用自己生成的GUID。

嗯,感谢。

@tegabom

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants