当前位置: 首页 > news >正文

丽水微信网站建设价格接推广app任务的平台

丽水微信网站建设价格,接推广app任务的平台,wordpress vue.js,wordpress相关Unity 之 获取手机:OAID、IMEI、ClientId、GUID 前言一、Oaid 介绍1.1 Oaid 说明1.2 移动安全联盟(MSA) 二、站在巨人的肩膀上2.1 本文实现参考2.2 本文实现效果2.3 本文相关插件 三、Unity 中获取Oaid3.1 查看实现源码3.2 工程配置3.3 代码实现3.4 场景搭建 四、总…

Unity 之 获取手机:OAID、IMEI、ClientId、GUID

  • 前言
  • 一、Oaid 介绍
    • 1.1 Oaid 说明
    • 1.2 移动安全联盟(MSA)
  • 二、站在巨人的肩膀上
    • 2.1 本文实现参考
    • 2.2 本文实现效果
    • 2.3 本文相关插件
  • 三、Unity 中获取Oaid
    • 3.1 查看实现源码
    • 3.2 工程配置
    • 3.3 代码实现
    • 3.4 场景搭建
  • 四、总结

前言

在当今的移动互联网时代,Oaid(Open Anonymous ID)成为了广告投放和用户分析的重要工具。对于 Unity 游戏开发者来说,获取安卓手机的 Oaid 可以帮助他们更好地了解用户行为、优化广告投放效果,并提供个性化的游戏体验。

我了解到Oaid还是在TapADN中,TapADN中提到Oaid可以提供更高收益:
在这里插入图片描述

本文将介绍如何在 Unity 中获取安卓手机的 Oaid。


一、Oaid 介绍

1.1 Oaid 说明

Oaid 是一种匿名设备标识符,用于标识移动设备。它与 IMEI 等设备标识符不同,Oaid 不会泄露用户的真实身份信息,同时也能满足广告投放和用户分析的需求。通过获取 Oaid,开发者可以了解用户的设备信息、地理位置、兴趣爱好等,从而为用户提供更加精准的广告投放和个性化的服务。

在 Android 10 版本中,广告渠道商们作为非厂商系统应用将无法获取 IMEI、MAC 等设备信息。旧版本的手机系统在用户手动升级前将保持不变,但是搭载 Android 10 系统的手机系统将不支持获取 IMEI。在一段时间内,将处于新旧版手机系统共存的状态,但是新版手机系统的用户占比将会逐渐提高,会造成新版系统用户无法进行推广渠道的匹配。


1.2 移动安全联盟(MSA)

(MSA)移动安全联盟针对该问题联合国内手机厂商推出补充设备标准体系方案,选择 OAID 字段作为 IMEI 等的替代字段 。广告渠道商选择 OAID 作为 IMEI 的替代字段。OAID 字段是由中国信通院联合华为、小米、OPPO、VIVO 等厂商共同推出的设备识别字段,具有一定的权威性。OAID 的准确性和覆盖率均满足广告场景的使用需求。

关于 OAID 更多信息可参考 MSA移动安全联盟官网: http://www.msa-alliance.cn/col.jsp?id=120

我注册并下载了MAD的SDK,看了开发说明文档,感觉集成操作有点复杂。进而有了本文的实现方式:
在这里插入图片描述



二、站在巨人的肩膀上

2.1 本文实现参考

查到了相关的实现方式【膜拜大佬】

参考链接:

  1. Unity Android获取OAID码
  2. Android_CN_OAID
    在这里插入图片描述

2.2 本文实现效果

下图1是本文最终的实现效果,图2图3是1.3中大佬提供的apk的测试结果参照
在这里插入图片描述

2.3 本文相关插件

在文章开头的资源绑定中有源码和本文使用的最新library-4.2.8.aar包(下载地址),使用是可打开看下是否有新的。
在这里插入图片描述

开头提供的资源包内容:在这里插入图片描述



三、Unity 中获取Oaid

3.1 查看实现源码

在 Unity 中,可以通过调用插件提供的接口来获取 Oaid。具体的获取方法可以参考DeviceIdentifier.java类代码。

在这里插入图片描述

一般来说,需要在游戏启动时获取 Oaid,并将其存储在本地,以便后续使用。


3.2 工程配置

在Project Setting→Player→安卓→Publishing Settings→Build 下勾选如下图所示三项,此时工程会自动生成左侧框到三个文件:
在这里插入图片描述


3.3 代码实现

在settingsTemplate.gradle,添加以下内容,粘贴两次,位置如图所示。

maven { url 'https://developer.huawei.com/repo/' }
maven { url 'https://developer.hihonor.com/repo' }

在这里插入图片描述

新建JAVA代码:

package com.GetOaid;import android.app.Application;
import android.app.Activity;import com.unity3d.player.UnityPlayer;import com.github.gzuliyujiang.oaid.DeviceIdentifier;
import com.github.gzuliyujiang.oaid.IRegisterCallback;public class OaidWrapper
{private Application application;public void register(){application = UnityPlayer.currentActivity.getApplication();DeviceIdentifier.register(application, false, new IRegisterCallback() {@Overridepublic void onComplete(String clientId, Exception error) {// do somethingUnityPlayer.UnitySendMessage("GetOaidSDK", "GetClientIdComplete", clientId);}});}public String getOAID(){UnityPlayer.UnitySendMessage("GetOaidSDK", "ShowMsg", DeviceIdentifier.getOAID(application));return DeviceIdentifier.getOAID(application);}public String getIMEI() {UnityPlayer.UnitySendMessage("GetOaidSDK", "ShowMsg", DeviceIdentifier.getIMEI(application));return DeviceIdentifier.getIMEI(application);}public String getClientId() {UnityPlayer.UnitySendMessage("GetOaidSDK", "ShowMsg", DeviceIdentifier.getClientId());return DeviceIdentifier.getClientId();}public String getGUID() {UnityPlayer.UnitySendMessage("GetOaidSDK", "ShowMsg", DeviceIdentifier.getGUID(application));return DeviceIdentifier.getGUID(application);}
}

3.4 场景搭建

创建两个Text展示获取到的信息,为了方便调试。在创建四个按钮用于测试主动获取OAID、IMEI、ClientId、GUID。新建GetOaidSDK的物体挂载代码
在这里插入图片描述

新建测试代码:

  1. 需要将3.3中代码挂载到名为GetOaidSDK的物体上。
  2. jo = new AndroidJavaObject("com.GetOaid.OaidWrapper"); 要和上面创建的java文件中的包名和类名对应上:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Android;
using UnityEngine.UI;public class GetOaidDemo : MonoBehaviour
{public Text oaidText;public Text megText;public Button getOaidBtn;public Button getIMEIBtn;public Button getClientIdBtn;public Button getGUIDBtn;public Button getOAIDAAIDBtn;private static AndroidJavaObject jo;// 读取设备信息 权限private string READ_PHONE_STATE = "android.permission.READ_PHONE_STATE";void Start(){getOaidBtn.onClick.AddListener(OnClickGetOAID);getIMEIBtn.onClick.AddListener(OnClickGetIMEI);getClientIdBtn.onClick.AddListener(OnClickGetClientId);getGUIDBtn.onClick.AddListener(OnClickGetGUID);getOAIDAAIDBtn.onClick.AddListener(OnClickGetOAIDAAID);// 请求READ_PHONE_STATE权限RequestAndCheckPermission();}public void RequestAndCheckPermission(){Debug.Log("检查请求权限");if (!Permission.HasUserAuthorizedPermission(READ_PHONE_STATE)){Permission.RequestUserPermission(READ_PHONE_STATE);// 开始协程等待权限变化StartCoroutine(WaitForPermission(READ_PHONE_STATE));}else{// 权限已授予,执行操作Debug.Log("权限已授予,执行相关操作");Register();}}IEnumerator WaitForPermission(string permission){float timeWaited = 0f;const float timeout = 10f; // 设置超时时间,防止无限等待while (!Permission.HasUserAuthorizedPermission(permission) && timeWaited < timeout){yield return new WaitForSeconds(0.2f); // 暂停并检查权限状态timeWaited += 0.2f;}if (Permission.HasUserAuthorizedPermission(permission)){Debug.Log($"Permission {permission} granted after waiting.");// 在这里处理权限被授予的逻辑ShowMsg("这里可以执行需要该权限的操作.");}else{Debug.LogWarning($"Permission {permission} not granted after waiting.");// 处理权限请求超时或被拒绝的情况ShowMsg($"处理权限请求超时或被拒绝的情况.");}}public void Register(){if (Application.platform == RuntimePlatform.Android){jo = new AndroidJavaObject("com.GetOaid.OaidWrapper");jo.Call("register");}}// 渠道clientId 自动获取oaidpublic void GetClientIdComplete(string clientId){oaidText.text = "clientId:" + clientId;OnClickGetOAID();}public void OnClickGetOAID(){oaidText.text += ",取Oaid:";if (Application.platform == RuntimePlatform.Android){jo = new AndroidJavaObject("com.GetOaid.OaidWrapper");string oaidStr = jo.Call<string>("getOAID");oaidText.text += oaidStr;Debug.Log("取Oaid:" + oaidStr);}}public void OnClickGetOAIDAAID(){oaidText.text += ",getOAIDAAID:";if (Application.platform == RuntimePlatform.Android){jo = new AndroidJavaObject("com.GetOaid.OaidWrapper");string oaidStr = jo.Call<string>("getOAIDAAID");oaidText.text += oaidStr;Debug.Log("getOAIDAAID:" + oaidStr);}}public void OnClickGetIMEI(){oaidText.text += ",getIMEI:";if (Application.platform == RuntimePlatform.Android){jo = new AndroidJavaObject("com.GetOaid.OaidWrapper");string oaidStr = jo.Call<string>("getIMEI");oaidText.text += oaidStr;Debug.Log("getIMEI:" + oaidStr);}}public void OnClickGetClientId(){oaidText.text += ",getClientId:";if (Application.platform == RuntimePlatform.Android){jo = new AndroidJavaObject("com.GetOaid.OaidWrapper");string oaidStr = jo.Call<string>("getClientId");oaidText.text += oaidStr;Debug.Log("getClientId:" + oaidStr);}}public void OnClickGetGUID(){oaidText.text += ",getGUID:";if (Application.platform == RuntimePlatform.Android){jo = new AndroidJavaObject("com.GetOaid.OaidWrapper");string oaidStr = jo.Call<string>("getGUID");oaidText.text += oaidStr;Debug.Log("getGUID:" + oaidStr);}}public void ShowMsg(string msg){megText.text += "\n" + msg;Debug.Log("msg:" + msg);}
}

四、总结

在获取和使用 Oaid 时,需要遵守相关的法律法规和隐私政策。不得将 Oaid 用于非法用途,不得泄露用户的隐私信息。

获取安卓手机的 Oaid 对于 Unity 游戏开发者来说具有重要的意义。通过获取 Oaid,开发者可以更好地了解用户行为、优化广告投放效果,并提供个性化的游戏体验。在获取 Oaid 时,需要遵守相关规定,确保获取的 Oaid 准确性,并及时更新 Oaid。希望本文对 Unity 游戏开发者有所帮助。

http://www.yayakq.cn/news/622079/

相关文章:

  • 闵行郑州阳网站建设使用网站模板快速建站教案
  • 南京定制网站生鲜超市店面设计
  • 创意中山网站建设旅游网站建设的方向
  • 常熟做网站价格创新的中山网站建设
  • 建设银行网站特点分析做网站费免图片网站
  • 做网站公司哪家好网站开发提供图片加载速度
  • 京东的网站建设做导航网站赚钱吗
  • 怎么邀约客户做网站九网互联怎么建设网站
  • wordpress 输出菜单秦皇岛做网站优化价格
  • 黄浦做网站公司信用门户网站建设方案
  • 权重域名做网站有用么建设通网站电话
  • 厦门做网站优化多少钱上海网络公司有哪几家
  • 网站怎么建设原始站点免费做视频的软件app
  • 网站开发设计公司块位宿州酒店网站建设
  • 网站建设工作稳定吗google下载官方版
  • 免费设计标志抖音搜索seo代理
  • 汕头制作网站软件动画素材
  • 泰安做网站建设的网站源码下载pdf文件
  • 建站主机 wordpress如何识别网页用什么网站做的
  • 哪个网站衬衣做的好如何提高网站的排名
  • 做那事的网站给人建设网站能赚钱吗
  • 广西新宇建设项目有限公司网站国内wordpress主题免费
  • 网站服务器爆满怎么挤进去威海外贸网站建设电话
  • 网站数据维护wordpress 收费课程
  • 万户网络做网站如何光谷做网站
  • 网站开发选题申请理由有哪些做调查的网站可以赚钱
  • 天津建设工程网站网页qq登录记录网站
  • 网站优化 合同南京做企业网站的公司
  • 自己做的公司网站百度搜不到网站线框图用什么做
  • 织梦做公司网站要钱吗福州公司网站建设一定要用主流程序php语言