• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99<html>
100<head>
101
102
103<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
104<meta name="viewport" content="width=device-width" />
105
106<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
107<title>DataLayer | Android Developers</title>
108
109<!-- STYLESHEETS -->
110<link rel="stylesheet"
111href="//fonts.googleapis.com/css?family=Roboto+Condensed">
112<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold"
113  title="roboto">
114<link href="/assets/css/default.css?v=4" rel="stylesheet" type="text/css">
115
116
117
118<!-- JAVASCRIPT -->
119<script src="//www.google.com/jsapi" type="text/javascript"></script>
120<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
121<script type="text/javascript">
122  var toRoot = "/";
123  var metaTags = [];
124  var devsite = false;
125</script>
126<script src="/assets/js/docs.js?v=3" type="text/javascript"></script>
127
128
129
130<script>
131  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
132  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
133  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
134  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
135
136  ga('create', 'UA-5831155-1', 'android.com');
137  ga('create', 'UA-49880327-2', 'android.com', {'name': 'universal'});  // New tracker);
138  ga('send', 'pageview');
139  ga('universal.send', 'pageview'); // Send page view for new tracker.
140</script>
141
142</head>
143
144<body class="gc-documentation google
145  develop reference" itemscope itemtype="http://schema.org/Article">
146  <div id="doc-api-level" class="" style="display:none"></div>
147  <a name="top"></a>
148
149
150<a name="top"></a>
151
152<!-- dialog to prompt lang pref change when loaded from hardcoded URL
153<div id="langMessage" style="display:none">
154  <div>
155    <div class="lang en">
156      <p>You requested a page in English, would you like to proceed with this language setting?</p>
157    </div>
158    <div class="lang es">
159      <p>You requested a page in Spanish (Español), would you like to proceed with this language setting?</p>
160    </div>
161    <div class="lang ja">
162      <p>You requested a page in Japanese (日本語), would you like to proceed with this language setting?</p>
163    </div>
164    <div class="lang ko">
165      <p>You requested a page in Korean (한국어), would you like to proceed with this language setting?</p>
166    </div>
167    <div class="lang ru">
168      <p>You requested a page in Russian (Русский), would you like to proceed with this language setting?</p>
169    </div>
170    <div class="lang zh-cn">
171      <p>You requested a page in Simplified Chinese (简体中文), would you like to proceed with this language setting?</p>
172    </div>
173    <div class="lang zh-tw">
174      <p>You requested a page in Traditional Chinese (繁體中文), would you like to proceed with this language setting?</p>
175    </div>
176    <a href="#" class="button yes" onclick="return false;">
177      <span class="lang en">Yes</span>
178      <span class="lang es">Sí</span>
179      <span class="lang ja">Yes</span>
180      <span class="lang ko">Yes</span>
181      <span class="lang ru">Yes</span>
182      <span class="lang zh-cn">是的</span>
183      <span class="lang zh-tw">没有</span>
184    </a>
185    <a href="#" class="button" onclick="$('#langMessage').hide();return false;">
186      <span class="lang en">No</span>
187      <span class="lang es">No</span>
188      <span class="lang ja">No</span>
189      <span class="lang ko">No</span>
190      <span class="lang ru">No</span>
191      <span class="lang zh-cn">没有</span>
192      <span class="lang zh-tw">没有</span>
193    </a>
194  </div>
195</div> -->
196
197
198  <!-- Header -->
199  <div id="header-wrapper">
200    <div id="header">
201
202
203
204
205      <div class="wrap" id="header-wrap">
206        <div class="col-3 logo">
207          <a href="/index.html">
208            <img src="/assets/images/dac_logo.png"
209                srcset="/assets/images/dac_logo@2x.png 2x"
210                width="123" height="25" alt="Android Developers" />
211          </a>
212          <div class="btn-quicknav" id="btn-quicknav">
213            <a href="#" class="arrow-inactive">Quicknav</a>
214            <a href="#" class="arrow-active">Quicknav</a>
215          </div>
216        </div>
217        <ul class="nav-x col-9">
218            <li class="design">
219              <a href="/design/index.html"
220              zh-tw-lang="設計"
221              zh-cn-lang="设计"
222              ru-lang="Проектирование"
223              ko-lang="디자인"
224              ja-lang="設計"
225              es-lang="Diseñar"
226              >Design</a></li>
227            <li class="develop"><a href="/develop/index.html"
228              zh-tw-lang="開發"
229              zh-cn-lang="开发"
230              ru-lang="Разработка"
231              ko-lang="개발"
232              ja-lang="開発"
233              es-lang="Desarrollar"
234              >Develop</a></li>
235            <li class="distribute last"><a href="/distribute/index.html"
236              zh-tw-lang="發佈"
237              zh-cn-lang="分发"
238              ru-lang="Распространение"
239              ko-lang="배포"
240              ja-lang="配布"
241              es-lang="Distribuir"
242              >Distribute</a></li>
243        </ul>
244
245
246
247
248<div class="menu-container">
249  <div class="moremenu">
250    <div id="more-btn"></div>
251  </div>
252  <div class="morehover" id="moremenu">
253    <div class="top"></div>
254    <div class="mid">
255      <div class="header">Links</div>
256      <ul>
257        <li><a href="https://play.google.com/apps/publish/" target="_googleplay">Google Play Developer Console</a></li>
258        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
259        <li><a href="/about/index.html">About Android</a></li>
260      </ul>
261      <div class="header">Android Sites</div>
262      <ul>
263        <li><a href="http://www.android.com">Android.com</a></li>
264        <li class="active"><a>Android Developers</a></li>
265        <li><a href="http://source.android.com">Android Open Source Project</a></li>
266      </ul>
267
268
269
270        <div class="header">Language</div>
271          <div id="language" class="locales">
272            <select name="language" onChange="changeLangPref(this.value, true)">
273                <option value="en">English</option>
274                <option value="es">Español</option>
275                <option value="ja">日本語</option>
276                <option value="ko">한국어</option>
277                <option value="ru">Русский</option>
278                <option value="zh-cn">中文(简体)</option>
279                <option value="zh-tw">中文(繁體)</option>
280            </select>
281          </div>
282        <script type="text/javascript">
283          <!--
284          loadLangPref();
285            //-->
286        </script>
287
288
289      <br class="clearfix" />
290    </div><!-- end 'mid' -->
291    <div class="bottom"></div>
292  </div><!-- end 'moremenu' -->
293
294  <div class="search" id="search-container">
295    <div class="search-inner">
296      <div id="search-btn"></div>
297      <div class="left"></div>
298      <form onsubmit="return submit_search()">
299        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
300          onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
301          onkeydown="return search_changed(event, true, '/')"
302          onkeyup="return search_changed(event, false, '/')" />
303      </form>
304      <div class="right"></div>
305      <a class="close hide">close</a>
306      <div class="left"></div>
307      <div class="right"></div>
308    </div><!-- end search-inner -->
309  </div><!-- end search-container -->
310
311  <div class="search_filtered_wrapper reference">
312    <div class="suggest-card reference no-display">
313      <ul class="search_filtered">
314      </ul>
315    </div>
316  </div>
317
318  <div class="search_filtered_wrapper docs">
319    <div class="suggest-card dummy no-display">&nbsp;</div>
320    <div class="suggest-card develop no-display">
321      <ul class="search_filtered">
322      </ul>
323      <div class="child-card guides no-display">
324      </div>
325      <div class="child-card training no-display">
326      </div>
327      <div class="child-card samples no-display">
328      </div>
329    </div>
330    <div class="suggest-card design no-display">
331      <ul class="search_filtered">
332      </ul>
333    </div>
334    <div class="suggest-card distribute no-display">
335      <ul class="search_filtered">
336      </ul>
337    </div>
338  </div>
339</div><!-- end menu-container (search and menu widget) -->
340
341
342
343        <!-- Expanded quicknav -->
344        <div id="quicknav" class="col-13">
345          <ul>
346            <li class="about">
347              <ul>
348                <li><a href="/about/index.html">About</a></li>
349                <li><a href="/wear/index.html">Wear</a></li>
350                <li><a href="/tv/index.html">TV</a></li>
351                <li><a href="/auto/index.html">Auto</a></li>
352              </ul>
353            </li>
354            <li class="design">
355              <ul>
356                <li><a href="/design/index.html">Get Started</a></li>
357                <li><a href="/design/devices.html">Devices</a></li>
358                <li><a href="/design/style/index.html">Style</a></li>
359                <li><a href="/design/patterns/index.html">Patterns</a></li>
360                <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
361                <li><a href="/design/downloads/index.html">Downloads</a></li>
362                <li><a href="/design/videos/index.html">Videos</a></li>
363              </ul>
364            </li>
365            <li class="develop">
366              <ul>
367                <li><a href="/training/index.html"
368                  zh-tw-lang="訓練課程"
369                  zh-cn-lang="培训"
370                  ru-lang="Курсы"
371                  ko-lang="교육"
372                  ja-lang="トレーニング"
373                  es-lang="Capacitación"
374                  >Training</a></li>
375                <li><a href="/guide/index.html"
376                  zh-tw-lang="API 指南"
377                  zh-cn-lang="API 指南"
378                  ru-lang="Руководства по API"
379                  ko-lang="API 가이드"
380                  ja-lang="API ガイド"
381                  es-lang="Guías de la API"
382                  >API Guides</a></li>
383                <li><a href="/reference/packages.html"
384                  zh-tw-lang="參考資源"
385                  zh-cn-lang="参考"
386                  ru-lang="Справочник"
387                  ko-lang="참조문서"
388                  ja-lang="リファレンス"
389                  es-lang="Referencia"
390                  >Reference</a></li>
391                <li><a href="/sdk/index.html"
392                  zh-tw-lang="相關工具"
393                  zh-cn-lang="工具"
394                  ru-lang="Инструменты"
395                  ko-lang="도구"
396                  ja-lang="ツール"
397                  es-lang="Herramientas"
398                  >Tools</a>
399                </li>
400                <li><a href="/google/index.html">Google Services</a>
401                </li>
402
403                  <li><a href="/samples/index.html">Samples</a>
404                  </li>
405
406              </ul>
407            </li>
408            <li class="distribute last">
409              <ul>
410                <li><a href="/distribute/googleplay/index.html">Google Play</a></li>
411                <li><a href="/distribute/essentials/index.html">Essentials</a></li>
412                <li><a href="/distribute/users/index.html">Get Users</a></li>
413                <li><a href="/distribute/engage/index.html">Engage &amp; Retain</a></li>
414                <li><a href="/distribute/monetize/index.html">Monetize</a></li>
415                <li><a href="/distribute/tools/index.html">Tools &amp; Reference</a></li>
416                <li><a href="/distribute/stories/index.html">Developer Stories</a></li>
417              </ul>
418            </li>
419          </ul>
420        </div><!-- /Expanded quicknav -->
421      </div><!-- end header-wrap.wrap -->
422    </div><!-- end header -->
423
424
425    <!-- Secondary x-nav -->
426    <div id="nav-x">
427        <div class="wrap" style="position:relative;z-index:1">
428
429
430
431
432
433            <ul class="nav-x col-9 develop" style="width:100%">
434                <li class="training"><a href="/training/index.html"
435                  zh-tw-lang="訓練課程"
436                  zh-cn-lang="培训"
437                  ru-lang="Курсы"
438                  ko-lang="교육"
439                  ja-lang="トレーニング"
440                  es-lang="Capacitación"
441                  >Training</a></li>
442                <li class="guide"><a href="/guide/index.html"
443                  zh-tw-lang="API 指南"
444                  zh-cn-lang="API 指南"
445                  ru-lang="Руководства по API"
446                  ko-lang="API 가이드"
447                  ja-lang="API ガイド"
448                  es-lang="Guías de la API"
449                  >API Guides</a></li>
450                <li class="reference"><a href="/reference/packages.html"
451                  zh-tw-lang="參考資源"
452                  zh-cn-lang="参考"
453                  ru-lang="Справочник"
454                  ko-lang="참조문서"
455                  ja-lang="リファレンス"
456                  es-lang="Referencia"
457                  >Reference</a></li>
458                <li class="tools"><a href="/sdk/index.html"
459                  zh-tw-lang="相關工具"
460                  zh-cn-lang="工具"
461                  ru-lang="Инструменты"
462                  ko-lang="도구"
463                  ja-lang="ツール"
464                  es-lang="Herramientas"
465                  >Tools</a></li>
466                <li class="google"><a href="/google/index.html"
467                  >Google Services</a>
468                </li>
469
470                  <li class="samples"><a href="/samples/index.html"
471                    >Samples</a>
472                  </li>
473
474            </ul>
475        </div>
476    </div>
477    <!-- /Sendondary x-nav DEVELOP -->
478
479
480
481    <div id="searchResults" class="wrap" style="display:none;">
482      <h2 id="searchTitle">Results</h2>
483      <div id="leftSearchControl" class="search-control">Loading...</div>
484    </div>
485  </div> <!--end header-wrapper -->
486
487  <div id="sticky-header">
488    <div>
489      <a class="logo" href="#top"></a>
490      <a class="top" href="#top"></a>
491      <ul class="breadcrumb">
492
493        <li class="current">DataLayer</li>
494      </ul>
495    </div>
496  </div>
497
498
499
500
501
502
503  <div class="wrap clearfix" id="body-content">
504    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
505      <div id="devdoc-nav" class="scroll-pane">
506
507
508
509<ul id="nav">
510
511  <li class="nav-section">
512    <div class="nav-section-header empty"><a href="/google/index.html">
513          <span class="en">Overview</span>
514      </a></div>
515  </li>
516
517  <li class="nav-section">
518    <div class="nav-section-header empty"><a href="/google/play-services/games.html">
519          <span class="en">Games</span>
520      </a></div>
521  </li>
522  <li class="nav-section">
523    <div class="nav-section-header empty"><a href="/google/play-services/location.html">
524          <span class="en">Location</span>
525      </a></div>
526  </li>
527  <li class="nav-section">
528    <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
529          <span class="en">Google+</span>
530                </a></div>
531  </li>
532  <li class="nav-section">
533    <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
534          <span class="en">Maps</span>
535      </a></div>
536  </li>
537  <li class="nav-section">
538    <div class="nav-section-header empty"><a href="/google/play-services/drive.html">
539          <span class="en">Drive</span>
540      </a></div>
541  </li>
542  <li class="nav-section">
543    <div class="nav-section-header empty"><a href="/google/play-services/cast.html">
544          <span class="en">Cast</span>
545      </a></div>
546  </li>
547  <li class="nav-section">
548    <div class="nav-section-header"><a href="/google/play-services/ads.html">
549      <span class="en">Ads</span></a>
550    </div>
551    <ul>
552      <li><a href="/google/play-services/id.html">
553          <span class="en">Advertising ID</span></a>
554      </li>
555    </ul>
556  </li>
557  <li class="nav-section">
558    <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
559          <span class="en">Wallet</span>
560      </a></div>
561  </li>
562
563
564  <li class="nav-section">
565    <div class="nav-section-header"><a href="/google/play-services/index.html">
566      <span class="en">Google Play Services</span></a>
567    </div>
568    <ul>
569      <li><a href="/google/play-services/setup.html">
570          <span class="en">Setting Up Google Play Services</span></a>
571      </li>
572      <li class="nav-section">
573        <div class="nav-section-header"><a href="/google/auth/api-client.html">
574          <span class="en">Accessing Google APIs</span></a>
575        </div>
576        <ul>
577          <li>
578            <a href="/google/auth/http-auth.html">
579              <span class="en">Authorizing with Google for REST APIs</span>
580            </a>
581          </li>
582        </ul>
583      </li>
584      <li id="gms-tree-list" class="nav-section">
585        <div class="nav-section-header">
586          <a href="/reference/gms-packages.html">
587            <span class="en">Reference</span>
588          </a>
589        <div>
590      </li>
591    </ul>
592  </li>
593
594
595  <li class="nav-section">
596    <div class="nav-section-header"><a href="/google/play/billing/index.html">
597      <span class="en">Google Play In-app Billing</span></a>
598    </div>
599    <ul>
600      <li><a href="/google/play/billing/billing_overview.html">
601              <span class="en">Overview</span></a>
602      </li>
603      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
604              <span class="en">Version 3 API</span></a></div>
605              <ul>
606              <li><a href="/google/play/billing/billing_integrate.html">
607              <span class="en">Implementing the API</span></a></li>
608              <li><a href="/google/play/billing/billing_reference.html">
609              <span class="en">Reference</span></a></li>
610              </ul>
611      </li>
612      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
613              <span class="en">Version 2 API</span></a></div>
614              <ul>
615              <li><a href="/google/play/billing/v2/billing_integrate.html">
616              <span class="en">Implementing the API</span></a></li>
617              <li><a href="/google/play/billing/v2/billing_subscriptions.html">
618              <span class="en">Subscriptions</span></a></li>
619              <li><a href="/google/play/billing/v2/billing_reference.html">
620              <span class="en">Reference</span></a></li>
621              </ul>
622      </li>
623      <li><a href="/google/play/billing/billing_subscriptions.html">
624              <span class="en">Subscriptions</span></a>
625      </li>
626      <li><a href="/google/play/billing/billing_best_practices.html">
627              <span class="en">Security and Design</span></a>
628      </li>
629      <li><a href="/google/play/billing/billing_testing.html">
630              <span class="en">Testing In-app Billing</span></a>
631      </li>
632      <li><a href="/google/play/billing/billing_admin.html">
633              <span class="en">Administering In-app Billing</span></a>
634      </li>
635      <li><a href="/google/play/billing/versions.html">
636              <span class="en">Version Notes</span></a>
637      </li>
638    </ul>
639  </li>
640
641
642
643   <li class="nav-section">
644      <div class="nav-section-header"><a href="/google/gcm/index.html">
645        <span class="en">Google Cloud Messaging</span></a>
646      </div>
647      <ul>
648        <li><a href="/google/gcm/gcm.html">
649            <span class="en">Overview</span></a>
650        </li>
651        <li><a href="/google/gcm/gs.html">
652            <span class="en">Getting Started</span></a>
653        </li>
654        <li><a href="/google/gcm/client.html">
655            <span class="en">Implementing GCM Client</span></a>
656        </li>
657        <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
658              <span class="en">Implementing GCM Server</span></a></div>
659              <ul>
660              <li><a href="/google/gcm/ccs.html">
661              <span class="en">CCS (XMPP)</span></a></li>
662              <li><a href="/google/gcm/http.html">
663              <span class="en">HTTP</span></a></li>
664              </ul>
665        </li>
666        <li><a href="/google/gcm/notifications.html">
667              <span class="en">User Notifications</span></a>
668        </li>
669        <li><a href="/google/gcm/adv.html">
670            <span class="en">Advanced Topics</span></a>
671        </li>
672        <li><a href="/google/gcm/c2dm.html">
673            <span class="en">Migration</span></a>
674        </li>
675        <li id="gcm-tree-list" class="nav-section">
676          <div class="nav-section-header">
677            <a href="/reference/gcm-packages.html">
678              <span class="en">Reference</span>
679            </a>
680          <div>
681        </li>
682      </ul>
683  </li>
684
685  <li class="nav-section">
686  <div class="nav-section-header empty"><a href="/google/gcs/index.html">
687        <span class="en">Google Cloud Save</span></a>
688      </div>
689  </li>
690
691  <li class="nav-section">
692    <div class="nav-section-header"><a href="/google/play/dist.html">
693      <span class="en">Google Play Distribution</span></a>
694    </div>
695    <ul>
696      <li><a href="/google/play/filters.html">
697          <span class="en">Filters on Google Play</span></a>
698      </li>
699      <li><a href="/google/play/billing/gp-purchase-status-api.html">
700              <span class="en">Google Play Developer API</span></a>
701      </li>
702      <li><a href="/google/play/publishing/multiple-apks.html">
703          <span class="en">Multiple APK Support</span></a>
704      </li>
705      <li><a href="/google/play/expansion-files.html">
706          <span class="en">APK Expansion Files</span></a>
707      </li>
708      <li class="nav-section">
709        <div class="nav-section-header"><a href="/google/play/licensing/index.html">
710          <span class="en">Application Licensing</span></a>
711        </div>
712        <ul>
713          <li><a href="/google/play/licensing/overview.html">
714              <span class="en">Licensing Overview</span></a>
715          </li>
716          <li><a href="/google/play/licensing/setting-up.html">
717              <span class="en">Setting Up for Licensing</span></a>
718          </li>
719          <li><a href="/google/play/licensing/adding-licensing.html">
720              <span class="en">Adding Licensing to Your App</span></a>
721          </li>
722          <li><a href="/google/play/licensing/licensing-reference.html">
723              <span class="en">Licensing Reference</span></a>
724          </li>
725        </ul>
726      </li>
727
728  <li class="nav-section">
729    <div class="nav-section-header"><a href="/google/backup/index.html">
730      Android Backup Service</a>
731    </div>
732    <ul>
733      <li><a href="/google/backup/signup.html">
734          Register</a>
735      </li>
736    </ul>
737  </li>
738
739  </ul>
740
741</li>
742
743
744
745</ul>
746
747<script type="text/javascript">
748<!--
749    buildToggleLists();
750    changeNavLang(getLangPref());
751//-->
752</script>
753
754
755
756
757      </div>
758      <script type="text/javascript">
759       showGoogleRefTree();
760
761      </script>
762    </div> <!-- end side-nav -->
763    <script>
764      $(document).ready(function() {
765        scrollIntoView("devdoc-nav");
766        });
767    </script>
768
769
770
771
772
773
774<div class="col-12"  id="doc-col">
775
776<div id="api-info-block">
777
778
779
780
781
782
783
784
785
786
787
788<div class="sum-details-links">
789
790Summary:
791
792
793
794
795
796  <a href="#constants">Constants</a>
797
798
799
800
801  &#124; <a href="#lfields">Fields</a>
802
803
804
805
806
807
808  &#124; <a href="#pubmethods">Methods</a>
809
810
811
812
813  &#124; <a href="#inhmethods">Inherited Methods</a>
814
815&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
816
817</div><!-- end sum-details-links -->
818<div class="api-level">
819
820
821
822
823</div>
824</div><!-- end api-info-block -->
825
826
827<!-- ======== START OF CLASS DATA ======== -->
828
829<div id="jd-header">
830    public
831
832
833
834    class
835<h1 itemprop="name">DataLayer</h1>
836
837
838
839
840    extends Object<br/>
841
842
843
844
845
846
847
848
849
850
851
852
853</div><!-- end header -->
854
855<div id="naMessage"></div>
856
857<div id="jd-content" class="api apilevel-">
858<table class="jd-inheritance-table">
859
860
861    <tr>
862
863        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
864    </tr>
865
866
867    <tr>
868
869            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
870
871        <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.tagmanager.DataLayer</td>
872    </tr>
873
874
875</table>
876
877
878
879
880
881
882
883<div class="jd-descr">
884
885
886<h2>Class Overview</h2>
887<p itemprop="articleBody">The data layer is a map holding generic information about the application. It uses a standard set
888 of keys so it can be read by any party that understands the specification. The data layer state
889 is updated through its API. For example, an app might start with the following dataLayer:
890
891 <pre>
892   {
893     "title": "Original screen title"
894   }
895</pre>
896
897 As the state/data of an app can change, the app can update the dataLayer with a call such as:
898
899 <pre>
900   dataLayer.push(DataLayer.mapOf("title", "New screen title"));
901</pre>
902
903 Now the data layer contains:
904
905 <pre>
906   {
907     "title": "New screen title"
908   }
909</pre>
910
911 After another push happens:
912
913 <pre>
914 dataLayer.push(DataLayer.mapOf("xyz", 3));
915</pre>
916
917 The dataLayer contains:
918
919 <pre>
920   {
921     "title": "New screen title",
922     "xyz": 3
923   }
924</pre>
925
926 The following example demonstrates how array and map merging works. If the original dataLayer
927 contains:
928
929 <pre>
930   {
931     "items": ["item1", null, "item2", {"a": "aValue", "b": "bValue"}]
932   }
933</pre>
934
935 After this push happens:
936
937 <pre>
938 dataLayer.push("items", DataLayer.listOf(null, "item6", DataLayer.OBJECT_NOT_PRESENT,
939     DataLayer.mapOf("a", null)));
940</pre>
941
942 The dataLayer contains:
943
944 <pre>
945   {
946     "items": [null, "item6", "item2", {"a": null, "b": "bValue"}]
947   }
948</pre>
949 <p>
950 Pushes happen synchronously; after the push, changes have been reflected in the model.
951 <p>
952 When an event is pushed to the data layer, rules for tags are evaluated and any
953 tags matching this event will fire. For example, given a container with a tag whose firing rule
954 is that "event" is equal to "openScreen", after this push:
955
956 <pre>
957 dataLayer.pushEvent(&quot;openScreen&quot;, DataLayer.mapOf());
958 </pre>
959
960 that tag will fire.
961</p>
962
963
964
965
966
967</div><!-- jd-descr -->
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984<div class="jd-descr">
985
986
987<h2>Summary</h2>
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001<!-- =========== ENUM CONSTANT SUMMARY =========== -->
1002<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
1003
1004
1005
1006    <tr class="alt-color api apilevel-" >
1007        <td class="jd-typecol">String</td>
1008        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/tagmanager/DataLayer.html#EVENT_KEY">EVENT_KEY</a></td>
1009        <td class="jd-descrcol" width="100%">
1010          If a map is pushed containing this key, it's treated as an event, and tags are evaluated.
1011
1012
1013
1014        </td>
1015    </tr>
1016
1017
1018
1019</table>
1020
1021
1022
1023
1024
1025
1026
1027<!-- =========== FIELD SUMMARY =========== -->
1028<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
1029
1030
1031
1032      <tr class="alt-color api apilevel-" >
1033          <td class="jd-typecol"><nobr>
1034          public
1035          static
1036          final
1037          Object</nobr></td>
1038          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/tagmanager/DataLayer.html#OBJECT_NOT_PRESENT">OBJECT_NOT_PRESENT</a></td>
1039          <td class="jd-descrcol" width="100%">
1040            Values of this type used in a List causes the List to be sparse when merging; it's as if
1041 there were no element at that index.
1042
1043
1044
1045          </td>
1046      </tr>
1047
1048
1049
1050</table>
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062<!-- ========== METHOD SUMMARY =========== -->
1063<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
1064
1065
1066
1067
1068    <tr class="alt-color api apilevel-" >
1069        <td class="jd-typecol"><nobr>
1070
1071
1072
1073
1074
1075            Object</nobr>
1076        </td>
1077        <td class="jd-linkcol" width="100%"><nobr>
1078        <span class="sympad"><a href="/reference/com/google/android/gms/tagmanager/DataLayer.html#get(java.lang.String)">get</a></span>(String key)</nobr>
1079
1080        <div class="jd-descrdiv">
1081          Returns the object in the model associated with the given key.
1082
1083
1084
1085        </div>
1086
1087  </td></tr>
1088
1089
1090
1091    <tr class=" api apilevel-" >
1092        <td class="jd-typecol"><nobr>
1093
1094
1095
1096            static
1097
1098            List&lt;Object&gt;</nobr>
1099        </td>
1100        <td class="jd-linkcol" width="100%"><nobr>
1101        <span class="sympad"><a href="/reference/com/google/android/gms/tagmanager/DataLayer.html#listOf(java.lang.Object...)">listOf</a></span>(Object... objects)</nobr>
1102
1103        <div class="jd-descrdiv">
1104          Utility method that creates a list.
1105
1106
1107
1108        </div>
1109
1110  </td></tr>
1111
1112
1113
1114    <tr class="alt-color api apilevel-" >
1115        <td class="jd-typecol"><nobr>
1116
1117
1118
1119            static
1120
1121            Map&lt;String,&nbsp;Object&gt;</nobr>
1122        </td>
1123        <td class="jd-linkcol" width="100%"><nobr>
1124        <span class="sympad"><a href="/reference/com/google/android/gms/tagmanager/DataLayer.html#mapOf(java.lang.Object...)">mapOf</a></span>(Object... objects)</nobr>
1125
1126        <div class="jd-descrdiv">
1127          Utility method that creates a map.
1128
1129
1130
1131        </div>
1132
1133  </td></tr>
1134
1135
1136
1137    <tr class=" api apilevel-" >
1138        <td class="jd-typecol"><nobr>
1139
1140
1141
1142
1143
1144            void</nobr>
1145        </td>
1146        <td class="jd-linkcol" width="100%"><nobr>
1147        <span class="sympad"><a href="/reference/com/google/android/gms/tagmanager/DataLayer.html#push(java.util.Map<java.lang.String, java.lang.Object>)">push</a></span>(Map&lt;String,&nbsp;Object&gt; update)</nobr>
1148
1149        <div class="jd-descrdiv">
1150          Merges the given <code>update</code> object into the existing data model, calling any
1151 listeners with the update (after the merge occurs).
1152
1153
1154
1155        </div>
1156
1157  </td></tr>
1158
1159
1160
1161    <tr class="alt-color api apilevel-" >
1162        <td class="jd-typecol"><nobr>
1163
1164
1165
1166
1167
1168            void</nobr>
1169        </td>
1170        <td class="jd-linkcol" width="100%"><nobr>
1171        <span class="sympad"><a href="/reference/com/google/android/gms/tagmanager/DataLayer.html#push(java.lang.String, java.lang.Object)">push</a></span>(String key, Object value)</nobr>
1172
1173        <div class="jd-descrdiv">
1174          Pushes a key/value pair of data to the data layer.
1175
1176
1177
1178        </div>
1179
1180  </td></tr>
1181
1182
1183
1184    <tr class=" api apilevel-" >
1185        <td class="jd-typecol"><nobr>
1186
1187
1188
1189
1190
1191            void</nobr>
1192        </td>
1193        <td class="jd-linkcol" width="100%"><nobr>
1194        <span class="sympad"><a href="/reference/com/google/android/gms/tagmanager/DataLayer.html#pushEvent(java.lang.String, java.util.Map<java.lang.String, java.lang.Object>)">pushEvent</a></span>(String eventName, Map&lt;String,&nbsp;Object&gt; update)</nobr>
1195
1196        <div class="jd-descrdiv">
1197          Pushes an event, along with an update map, to the data layer.
1198
1199
1200
1201        </div>
1202
1203  </td></tr>
1204
1205
1206
1207    <tr class="alt-color api apilevel-" >
1208        <td class="jd-typecol"><nobr>
1209
1210
1211
1212
1213
1214            String</nobr>
1215        </td>
1216        <td class="jd-linkcol" width="100%"><nobr>
1217        <span class="sympad"><a href="/reference/com/google/android/gms/tagmanager/DataLayer.html#toString()">toString</a></span>()</nobr>
1218
1219        <div class="jd-descrdiv">
1220          Returns a human readable string representing the Data Layer object.
1221
1222
1223
1224        </div>
1225
1226  </td></tr>
1227
1228
1229
1230</table>
1231
1232
1233
1234
1235
1236
1237
1238<!-- ========== METHOD SUMMARY =========== -->
1239<table id="inhmethods" class="jd-sumtable"><tr><th>
1240  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
1241  <div style="clear:left;">Inherited Methods</div></th></tr>
1242
1243
1244<tr class="api apilevel-" >
1245<td colspan="12">
1246  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
1247          ><img id="inherited-methods-java.lang.Object-trigger"
1248          src="/assets/images/triangle-closed.png"
1249          class="jd-expando-trigger-img" /></a>
1250From class
1251
1252  java.lang.Object
1253
1254<div id="inherited-methods-java.lang.Object">
1255  <div id="inherited-methods-java.lang.Object-list"
1256        class="jd-inheritedlinks">
1257  </div>
1258  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
1259    <table class="jd-sumtable-expando">
1260
1261
1262
1263
1264    <tr class="alt-color api apilevel-" >
1265        <td class="jd-typecol"><nobr>
1266
1267
1268
1269
1270
1271            Object</nobr>
1272        </td>
1273        <td class="jd-linkcol" width="100%"><nobr>
1274        <span class="sympad">clone</span>()</nobr>
1275
1276  </td></tr>
1277
1278
1279
1280    <tr class=" api apilevel-" >
1281        <td class="jd-typecol"><nobr>
1282
1283
1284
1285
1286
1287            boolean</nobr>
1288        </td>
1289        <td class="jd-linkcol" width="100%"><nobr>
1290        <span class="sympad">equals</span>(Object arg0)</nobr>
1291
1292  </td></tr>
1293
1294
1295
1296    <tr class="alt-color api apilevel-" >
1297        <td class="jd-typecol"><nobr>
1298
1299
1300
1301
1302
1303            void</nobr>
1304        </td>
1305        <td class="jd-linkcol" width="100%"><nobr>
1306        <span class="sympad">finalize</span>()</nobr>
1307
1308  </td></tr>
1309
1310
1311
1312    <tr class=" api apilevel-" >
1313        <td class="jd-typecol"><nobr>
1314
1315
1316            final
1317
1318
1319            Class&lt;?&gt;</nobr>
1320        </td>
1321        <td class="jd-linkcol" width="100%"><nobr>
1322        <span class="sympad">getClass</span>()</nobr>
1323
1324  </td></tr>
1325
1326
1327
1328    <tr class="alt-color api apilevel-" >
1329        <td class="jd-typecol"><nobr>
1330
1331
1332
1333
1334
1335            int</nobr>
1336        </td>
1337        <td class="jd-linkcol" width="100%"><nobr>
1338        <span class="sympad">hashCode</span>()</nobr>
1339
1340  </td></tr>
1341
1342
1343
1344    <tr class=" api apilevel-" >
1345        <td class="jd-typecol"><nobr>
1346
1347
1348            final
1349
1350
1351            void</nobr>
1352        </td>
1353        <td class="jd-linkcol" width="100%"><nobr>
1354        <span class="sympad">notify</span>()</nobr>
1355
1356  </td></tr>
1357
1358
1359
1360    <tr class="alt-color api apilevel-" >
1361        <td class="jd-typecol"><nobr>
1362
1363
1364            final
1365
1366
1367            void</nobr>
1368        </td>
1369        <td class="jd-linkcol" width="100%"><nobr>
1370        <span class="sympad">notifyAll</span>()</nobr>
1371
1372  </td></tr>
1373
1374
1375
1376    <tr class=" api apilevel-" >
1377        <td class="jd-typecol"><nobr>
1378
1379
1380
1381
1382
1383            String</nobr>
1384        </td>
1385        <td class="jd-linkcol" width="100%"><nobr>
1386        <span class="sympad">toString</span>()</nobr>
1387
1388  </td></tr>
1389
1390
1391
1392    <tr class="alt-color api apilevel-" >
1393        <td class="jd-typecol"><nobr>
1394
1395
1396            final
1397
1398
1399            void</nobr>
1400        </td>
1401        <td class="jd-linkcol" width="100%"><nobr>
1402        <span class="sympad">wait</span>()</nobr>
1403
1404  </td></tr>
1405
1406
1407
1408    <tr class=" api apilevel-" >
1409        <td class="jd-typecol"><nobr>
1410
1411
1412            final
1413
1414
1415            void</nobr>
1416        </td>
1417        <td class="jd-linkcol" width="100%"><nobr>
1418        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
1419
1420  </td></tr>
1421
1422
1423
1424    <tr class="alt-color api apilevel-" >
1425        <td class="jd-typecol"><nobr>
1426
1427
1428            final
1429
1430
1431            void</nobr>
1432        </td>
1433        <td class="jd-linkcol" width="100%"><nobr>
1434        <span class="sympad">wait</span>(long arg0)</nobr>
1435
1436  </td></tr>
1437
1438
1439</table>
1440  </div>
1441</div>
1442</td></tr>
1443
1444
1445</table>
1446
1447
1448</div><!-- jd-descr (summary) -->
1449
1450<!-- Details -->
1451
1452
1453
1454
1455
1456
1457
1458
1459<!-- XML Attributes -->
1460
1461
1462<!-- Enum Values -->
1463
1464
1465<!-- Constants -->
1466
1467
1468<!-- ========= ENUM CONSTANTS DETAIL ======== -->
1469<h2>Constants</h2>
1470
1471
1472
1473
1474<A NAME="EVENT_KEY"></A>
1475
1476<div class="jd-details api apilevel-">
1477    <h4 class="jd-details-title">
1478      <span class="normal">
1479        public
1480        static
1481        final
1482        String
1483      </span>
1484        EVENT_KEY
1485    </h4>
1486      <div class="api-level">
1487
1488
1489
1490
1491      </div>
1492    <div class="jd-details-descr">
1493
1494
1495
1496
1497  <div class="jd-tagdata jd-tagdescr"><p>If a map is pushed containing this key, it's treated as an event, and tags are evaluated.
1498</p></div>
1499
1500
1501        <div class="jd-tagdata">
1502        <span class="jd-tagtitle">Constant Value: </span>
1503        <span>
1504
1505                "event"
1506
1507        </span>
1508        </div>
1509
1510    </div>
1511</div>
1512
1513
1514
1515
1516<!-- Fields -->
1517
1518
1519<!-- ========= FIELD DETAIL ======== -->
1520<h2>Fields</h2>
1521
1522
1523
1524
1525<A NAME="OBJECT_NOT_PRESENT"></A>
1526
1527<div class="jd-details api apilevel-">
1528    <h4 class="jd-details-title">
1529      <span class="normal">
1530        public
1531        static
1532        final
1533        Object
1534      </span>
1535        OBJECT_NOT_PRESENT
1536    </h4>
1537      <div class="api-level">
1538
1539
1540
1541
1542      </div>
1543    <div class="jd-details-descr">
1544
1545
1546
1547
1548  <div class="jd-tagdata jd-tagdescr"><p>Values of this type used in a List causes the List to be sparse when merging; it's as if
1549 there were no element at that index.
1550</p></div>
1551
1552
1553    </div>
1554</div>
1555
1556
1557
1558
1559<!-- Public ctors -->
1560
1561
1562
1563<!-- ========= CONSTRUCTOR DETAIL ======== -->
1564<!-- Protected ctors -->
1565
1566
1567
1568<!-- ========= METHOD DETAIL ======== -->
1569<!-- Public methdos -->
1570
1571<h2>Public Methods</h2>
1572
1573
1574
1575<A NAME="get(java.lang.String)"></A>
1576
1577<div class="jd-details api apilevel-">
1578    <h4 class="jd-details-title">
1579      <span class="normal">
1580        public
1581
1582
1583
1584
1585        Object
1586      </span>
1587      <span class="sympad">get</span>
1588      <span class="normal">(String key)</span>
1589    </h4>
1590      <div class="api-level">
1591        <div></div>
1592
1593
1594
1595      </div>
1596    <div class="jd-details-descr">
1597
1598
1599
1600
1601  <div class="jd-tagdata jd-tagdescr"><p>Returns the object in the model associated with the given key. If the key is not found,
1602 <code>null</code> is returned.
1603 <p>
1604 The key can can have embedded periods. For example: a key of <code>&quot;a.b.c&quot;</code>
1605 returns a map with key <code>&quot;c&quot;</code> in a map with key
1606 <code>&quot;b&quot;</code> in a map with key <code>&quot;a&quot;</code> in the
1607 model.
1608</p></div>
1609
1610    </div>
1611</div>
1612
1613
1614<A NAME="listOf(java.lang.Object...)"></A>
1615
1616<div class="jd-details api apilevel-">
1617    <h4 class="jd-details-title">
1618      <span class="normal">
1619        public
1620        static
1621
1622
1623
1624        List&lt;Object&gt;
1625      </span>
1626      <span class="sympad">listOf</span>
1627      <span class="normal">(Object... objects)</span>
1628    </h4>
1629      <div class="api-level">
1630        <div></div>
1631
1632
1633
1634      </div>
1635    <div class="jd-details-descr">
1636
1637
1638
1639
1640  <div class="jd-tagdata jd-tagdescr"><p>Utility method that creates a list.
1641 <p>
1642 For example, the following creates a list containing <code>&quot;object1&quot;</code> and
1643 <code>&quot;object2&quot;</code>:
1644
1645 <pre>
1646 List&lt;Object&gt; list = DataLayer.listOf(&quot;object1&quot;, &quot;object2&quot;);
1647 </pre>
1648</p></div>
1649
1650    </div>
1651</div>
1652
1653
1654<A NAME="mapOf(java.lang.Object...)"></A>
1655
1656<div class="jd-details api apilevel-">
1657    <h4 class="jd-details-title">
1658      <span class="normal">
1659        public
1660        static
1661
1662
1663
1664        Map&lt;String,&nbsp;Object&gt;
1665      </span>
1666      <span class="sympad">mapOf</span>
1667      <span class="normal">(Object... objects)</span>
1668    </h4>
1669      <div class="api-level">
1670        <div></div>
1671
1672
1673
1674      </div>
1675    <div class="jd-details-descr">
1676
1677
1678
1679
1680  <div class="jd-tagdata jd-tagdescr"><p>Utility method that creates a map. The parameters should be pairs of key values.
1681 <p>
1682 For example, the following creates a map mapping <code>&quot;key1&quot;</code> to
1683 <code>&quot;value1&quot;</code> and <code>&quot;key2&quot;
1684 </code> to <code>&quot;value2&quot;</code>:
1685
1686 <pre>
1687 Map&lt;String, Object&gt; map = DataLayer.mapOf(&quot;key1&quot;, &quot;value1&quot;,
1688         &quot;key2&quot;, &quot;value2&quot;);
1689 </pre></p></div>
1690  <div class="jd-tagdata">
1691      <h5 class="jd-tagtitle">Throws</h5>
1692      <table class="jd-tagtable">
1693        <tr>
1694            <th>IllegalArgumentException</td>
1695            <td>if there are an odd number of parameters or a key is not a
1696     string
1697</td>
1698        </tr>
1699      </table>
1700  </div>
1701
1702    </div>
1703</div>
1704
1705
1706<A NAME="push(java.util.Map<java.lang.String, java.lang.Object>)"></A>
1707
1708<div class="jd-details api apilevel-">
1709    <h4 class="jd-details-title">
1710      <span class="normal">
1711        public
1712
1713
1714
1715
1716        void
1717      </span>
1718      <span class="sympad">push</span>
1719      <span class="normal">(Map&lt;String,&nbsp;Object&gt; update)</span>
1720    </h4>
1721      <div class="api-level">
1722        <div></div>
1723
1724
1725
1726      </div>
1727    <div class="jd-details-descr">
1728
1729
1730
1731
1732  <div class="jd-tagdata jd-tagdescr"><p>Merges the given <code>update</code> object into the existing data model, calling any
1733 listeners with the update (after the merge occurs).
1734 <p>
1735 If you want to represent a missing value (like an empty index in a List), use the
1736 <code>OBJECT_NOT_PRESENT</code> object.
1737 <p>
1738 If another thread is executing a push, this call blocks until that thread is finished.
1739 <p>
1740 This is normally a synchronous call. However, if, while the thread is executing the push,
1741 another push happens from the same thread, then that second push is asynchronous (the second
1742 push will return before changes have been made to the data layer). This second push from the
1743 same thread can occur, for example, if a data layer push is made in response to a tag firing.
1744 <p>
1745 If the <code>update</code> contains the key <code>event</code>, rules will be evaluated and
1746 matching tags will fire.</p></div>
1747  <div class="jd-tagdata">
1748      <h5 class="jd-tagtitle">Parameters</h5>
1749      <table class="jd-tagtable">
1750        <tr>
1751          <th>update</td>
1752          <td>the update object to process
1753</td>
1754        </tr>
1755      </table>
1756  </div>
1757
1758    </div>
1759</div>
1760
1761
1762<A NAME="push(java.lang.String, java.lang.Object)"></A>
1763
1764<div class="jd-details api apilevel-">
1765    <h4 class="jd-details-title">
1766      <span class="normal">
1767        public
1768
1769
1770
1771
1772        void
1773      </span>
1774      <span class="sympad">push</span>
1775      <span class="normal">(String key, Object value)</span>
1776    </h4>
1777      <div class="api-level">
1778        <div></div>
1779
1780
1781
1782      </div>
1783    <div class="jd-details-descr">
1784
1785
1786
1787
1788  <div class="jd-tagdata jd-tagdescr"><p>Pushes a key/value pair of data to the data layer. This is just a convenience method that
1789 calls <code>push(DataLayer.mapOf(key, value))</code>.
1790 <p>
1791 A key with value <code>event</code> will cause rules to be evaluated and matching tags
1792 to be fired.
1793</p></div>
1794
1795    </div>
1796</div>
1797
1798
1799<A NAME="pushEvent(java.lang.String, java.util.Map<java.lang.String, java.lang.Object>)"></A>
1800
1801<div class="jd-details api apilevel-">
1802    <h4 class="jd-details-title">
1803      <span class="normal">
1804        public
1805
1806
1807
1808
1809        void
1810      </span>
1811      <span class="sympad">pushEvent</span>
1812      <span class="normal">(String eventName, Map&lt;String,&nbsp;Object&gt; update)</span>
1813    </h4>
1814      <div class="api-level">
1815        <div></div>
1816
1817
1818
1819      </div>
1820    <div class="jd-details-descr">
1821
1822
1823
1824
1825  <div class="jd-tagdata jd-tagdescr"><p>Pushes an event, along with an update map, to the data layer.
1826 <p>
1827 This is just a convenience method that pushes a map containing a key <code>event</code> whose
1828 value is <code>eventName</code> along with the contents of <code>update</code> via
1829 <code>push(Map<String, Object>)</code>.
1830</p></div>
1831
1832    </div>
1833</div>
1834
1835
1836<A NAME="toString()"></A>
1837
1838<div class="jd-details api apilevel-">
1839    <h4 class="jd-details-title">
1840      <span class="normal">
1841        public
1842
1843
1844
1845
1846        String
1847      </span>
1848      <span class="sympad">toString</span>
1849      <span class="normal">()</span>
1850    </h4>
1851      <div class="api-level">
1852        <div></div>
1853
1854
1855
1856      </div>
1857    <div class="jd-details-descr">
1858
1859
1860
1861
1862  <div class="jd-tagdata jd-tagdescr"><p>Returns a human readable string representing the Data Layer object.
1863</p></div>
1864
1865    </div>
1866</div>
1867
1868
1869
1870
1871
1872<!-- ========= METHOD DETAIL ======== -->
1873
1874
1875
1876<!-- ========= END OF CLASS DATA ========= -->
1877<A NAME="navbar_top"></A>
1878
1879<div id="footer" class="wrap" >
1880
1881
1882  <div id="copyright">
1883
1884  Except as noted, this content is licensed under <a
1885  href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
1886  For details and restrictions, see the <a href="/license.html">
1887  Content License</a>.
1888  </div>
1889  <div id="build_info">
1890
1891<script src="/timestamp.js" type="text/javascript"></script>
1892<script>document.write(BUILD_TIMESTAMP)</script>
1893
1894  </div>
1895
1896
1897  <div id="footerlinks">
1898
1899  <p>
1900    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
1901    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
1902    <a href="/support.html">Support</a>
1903  </p>
1904  </div>
1905
1906</div> <!-- end footer -->
1907</div> <!-- jd-content -->
1908
1909</div><!-- end doc-content -->
1910
1911</div> <!-- end body-content -->
1912
1913
1914
1915
1916
1917
1918</body>
1919</html>
1920