2

我在我的应用程序中使用广告 ID,并且代码运行良好,我在运行 Android Nougat 7.1.2 的设备上对其进行了测试。你能指出我应该添加什么才能在牛轧糖中得到它吗?

private static void getAdvertisingID() {
    AsyncTask<Void, Void, String> task = new AsyncTask<Void, Void, String>() {
        @Override
        protected String doInBackground(Void... params) {
            AdvertisingIdClient.Info idInfo = null;
            try {
                idInfo = AdvertisingIdClient.getAdvertisingIdInfo(_context);
                if (idInfo.isLimitAdTrackingEnabled()){ // check if user has opted out of tracking
                    Log.i("NetworkStateChangeReceiver","Not Found");
                    return "did not found GAID... sorry";
                }
            } catch (GooglePlayServicesNotAvailableException e) {
                e.printStackTrace();
            } catch (GooglePlayServicesRepairableException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
            String advertId = null;
            try{
                advertId = idInfo.getId();
            }catch (Exception e){
                e.printStackTrace();
            }
            return advertId;
        }
        @Override
        protected void onPostExecute(String advertId) {
            Log.i("NetworkStateChangeReceiver","Found "+advertId);
            UtilHelper.setDeviceIDFA(advertId);
        }
    };
    task.execute();
}
4

1 回答 1

1

结果代码工作正常,唯一的问题是在 Nougat 上调用onPostExecute方法需要一些时间,而在运行较低 android 版本的其他设备上,此方法调用速度很快。我只是在调用后添加了一些延迟来获取广告 ID getAdvertisingID,一切正常。快乐编码

于 2017-04-17T11:55:03.247 回答