我正在构建Unity Android应用,并查看一些广告。我们正在考虑的其中一项服务需要我的Google广告ID并限制广告状态才能进行服务器到服务器转换跟踪。
问题是我不确定如何在Unity中获取这些值中的任何一个。好像我需要某种形式的插件?我已经为AdMob和Chartboost实现了谷歌广告服务并且正在使用,但是尽管我可以告诉他们这些插件都不能让我访问我需要检索上述值的java调用。
所以我想我不确定如何访问我需要的数据。我对于在游戏中添加更多插件犹豫不决,因为它们变得越来越难以管理。如果我理解正确的话,我认为应该有一种方法可以通过Unity的库来访问java,但我没有丝毫知道如何做到这一点。
答案 0 :(得分:6)
我能够使用以下代码获得所需的数据:
string advertisingID = "";
bool limitAdvertising = false;
AndroidJavaClass up = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = up.GetStatic<AndroidJavaObject> ("currentActivity");
AndroidJavaClass client = new AndroidJavaClass ("com.google.android.gms.ads.identifier.AdvertisingIdClient");
AndroidJavaObject adInfo = client.CallStatic<AndroidJavaObject> ("getAdvertisingIdInfo",currentActivity);
advertisingID = adInfo.Call<string> ("getId").ToString();
limitTracking = (adInfo.Call<bool> ("isLimitAdTrackingEnabled"));