Cocos2d-js Android项目获取OAID(匿名设备唯一标识符)
移动智能终端补充设备标识体系统一调用 SDK
自从Google更新了Android Q系统之后,获取设备唯一标识就成了一件难事,但是还好移动安全联盟(MSA)早已经研发好了,研发出的SDK可以获取到叫做 OAID 的匿名设备唯一号。
下载sdk (miit_mdid_x.x.x.zip):
解压sdk
Android studio工程处理
1.将msa_mdid_1.0.13.aar导入到libs目录下,并且在Android studio工程项目的build.gradle文件里添加下列代码:
apply plugin: 'com.android.application'
android {
...
defaultConfig {
...
ndk {
//根据需要 自行选择添加的对应cpu类型的.so库。
abiFilters 'armeabi-v7a','x86','arm64-v8a','x86_64','armeabi'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
packagingOptions {
doNotStrip "*/armeabi-v7a/*.so"
doNotStrip "*/x86/*.so"
doNotStrip "*/arm64-v8a/*.so"
doNotStrip "*/x86_64/*.so"
doNotStrip "armeabi.so"
}
...
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
...
compile(name: 'msa_mdid_1.0.13', ext: 'aar')
...
}
repositories {
...
flatDir {
dirs 'libs'
}
...
}
2.在项目的proguard-rules.pro文件里添加下列代码
-keep class com.bun.miitmdid.core.** {*;}
3.将supplierconfig.json导入到Cocos2d-js项目主目录下(如果是普通Android studio项目,仅仅只需要将文件导入到Android studio工程项目的assets目录中,不需要添加其他代码),并且在Android studio工程项目的build-cfg.json里添加下列代码:
{
"ndk_module_path":[
"../../cocos2d-x",
"../../cocos2d-x/cocos",
"../../cocos2d-x/external"
],
"copy_resources":[
...
{
"to":"",
"from":"../../../supplierconfig.json"
}
...
]
}
4.将MiitHelper.java导入到src目录下,并修改MiitHelper.java代码
Java代码处理
SDK初始化
public class MyApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
...
try {
JLibrary.InitEntry(this);
} catch (Exception e) {
e.printStackTrace();
}
...
}
}
调用接口获取OAID
MiitHelper miIdHelper = new MiitHelper(new MiitHelper.AppIdsUpdater() {
@Override
public void OnIdsAvalid(@NonNull String ids) {
Log.e("Ids", ids);
}
});
miIdHelper.getDeviceIds(context);
ids字符串内包含下列信息:
support:是否支持补充设备标识符获取
OAID:可以连接所有应用数据的标识符,移动智能终端系统首次启动后立即生成,可用于广告业务。可以通过 SDK 获取到接口状态(重置、关闭)、ID 值。
VAID:用于开放给开发者的设备标识符,可在应用安装时产生,可用于同一开发者不同应用之间的推荐。可以通过 SDK 获取到 ID 值。
AAID:第三方应用获取的匿名设备标识,可在应用安装时产生,可用于用户统计等。可以通过 SDK 获取到 ID 值。