Cocos2d-js Android项目获取OAID(匿名设备唯一标识符)

Cocos2d-js Android项目获取OAID(匿名设备唯一标识符)

  • 移动智能终端补充设备标识体系统一调用 SDK
    • 下载sdk (miit_mdid_x.x.x.zip):
    • 解压sdk
  • Android studio工程处理
  • Java代码处理
    • SDK初始化
    • 调用接口获取OAID

移动智能终端补充设备标识体系统一调用 SDK

自从Google更新了Android Q系统之后,获取设备唯一标识就成了一件难事,但是还好移动安全联盟(MSA)早已经研发好了,研发出的SDK可以获取到叫做 OAID 的匿名设备唯一号。

下载sdk (miit_mdid_x.x.x.zip):

腾讯网盘(密码:vgtuk6)
MSA官网

解压sdk

Cocos2d-js Android项目获取OAID(匿名设备唯一标识符)_第1张图片
Cocos2d-js Android项目获取OAID(匿名设备唯一标识符)_第2张图片

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 值。

你可能感兴趣的:(Android开发)