• 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>GooglePlayServicesUtil | 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">GooglePlayServicesUtil</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
802
803
804
805  &#124; <a href="#pubmethods">Methods</a>
806
807
808
809
810  &#124; <a href="#inhmethods">Inherited Methods</a>
811
812&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
813
814</div><!-- end sum-details-links -->
815<div class="api-level">
816
817
818
819
820</div>
821</div><!-- end api-info-block -->
822
823
824<!-- ======== START OF CLASS DATA ======== -->
825
826<div id="jd-header">
827    public
828
829    final
830
831    class
832<h1 itemprop="name">GooglePlayServicesUtil</h1>
833
834
835
836
837    extends Object<br/>
838
839
840
841
842
843
844
845
846
847
848
849
850</div><!-- end header -->
851
852<div id="naMessage"></div>
853
854<div id="jd-content" class="api apilevel-">
855<table class="jd-inheritance-table">
856
857
858    <tr>
859
860        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
861    </tr>
862
863
864    <tr>
865
866            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
867
868        <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.common.GooglePlayServicesUtil</td>
869    </tr>
870
871
872</table>
873
874
875
876
877
878
879
880<div class="jd-descr">
881
882
883<h2>Class Overview</h2>
884<p itemprop="articleBody">Utility class for verifying that the Google Play services APK is available and
885 up-to-date on this device.  The same checks are performed if one uses
886 <code><a href="/reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.html">AdvertisingIdClient</a></code> or
887 <code><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html">GoogleAuthUtil</a></code> to connect to the service.
888</p>
889
890
891
892
893
894</div><!-- jd-descr -->
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911<div class="jd-descr">
912
913
914<h2>Summary</h2>
915
916
917
918
919
920
921
922
923
924
925
926
927
928<!-- =========== ENUM CONSTANT SUMMARY =========== -->
929<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
930
931
932
933    <tr class="alt-color api apilevel-" >
934        <td class="jd-typecol">String</td>
935        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#GMS_ERROR_DIALOG">GMS_ERROR_DIALOG</a></td>
936        <td class="jd-descrcol" width="100%">
937
938
939
940
941        </td>
942    </tr>
943
944
945    <tr class=" api apilevel-" >
946        <td class="jd-typecol">String</td>
947        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#GOOGLE_PLAY_SERVICES_PACKAGE">GOOGLE_PLAY_SERVICES_PACKAGE</a></td>
948        <td class="jd-descrcol" width="100%">
949          Package name for Google Play services.
950
951
952
953        </td>
954    </tr>
955
956
957    <tr class="alt-color api apilevel-" >
958        <td class="jd-typecol">int</td>
959        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#GOOGLE_PLAY_SERVICES_VERSION_CODE">GOOGLE_PLAY_SERVICES_VERSION_CODE</a></td>
960        <td class="jd-descrcol" width="100%">
961          Google Play services client library version (declared in library's
962 AndroidManifest.xml android:versionCode).
963
964
965
966        </td>
967    </tr>
968
969
970    <tr class=" api apilevel-" >
971        <td class="jd-typecol">String</td>
972        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#GOOGLE_PLAY_STORE_PACKAGE">GOOGLE_PLAY_STORE_PACKAGE</a></td>
973        <td class="jd-descrcol" width="100%">
974          Package name for Google Play services.
975
976
977
978        </td>
979    </tr>
980
981
982
983</table>
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000<!-- ========== METHOD SUMMARY =========== -->
1001<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
1002
1003
1004
1005
1006    <tr class="alt-color api apilevel-" >
1007        <td class="jd-typecol"><nobr>
1008
1009
1010
1011            static
1012
1013            Dialog</nobr>
1014        </td>
1015        <td class="jd-linkcol" width="100%"><nobr>
1016        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorDialog(int, android.app.Activity, int)">getErrorDialog</a></span>(int errorCode, Activity activity, int requestCode)</nobr>
1017
1018        <div class="jd-descrdiv">
1019          Returns a dialog to address the provided errorCode.
1020
1021
1022
1023        </div>
1024
1025  </td></tr>
1026
1027
1028
1029    <tr class=" api apilevel-" >
1030        <td class="jd-typecol"><nobr>
1031
1032
1033
1034            static
1035
1036            Dialog</nobr>
1037        </td>
1038        <td class="jd-linkcol" width="100%"><nobr>
1039        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorDialog(int, android.app.Activity, int, android.content.DialogInterface.OnCancelListener)">getErrorDialog</a></span>(int errorCode, Activity activity, int requestCode, DialogInterface.OnCancelListener cancelListener)</nobr>
1040
1041        <div class="jd-descrdiv">
1042          Returns a dialog to address the provided errorCode.
1043
1044
1045
1046        </div>
1047
1048  </td></tr>
1049
1050
1051
1052    <tr class="alt-color api apilevel-" >
1053        <td class="jd-typecol"><nobr>
1054
1055
1056
1057            static
1058
1059            PendingIntent</nobr>
1060        </td>
1061        <td class="jd-linkcol" width="100%"><nobr>
1062        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorPendingIntent(int, android.content.Context, int)">getErrorPendingIntent</a></span>(int errorCode, Context context, int requestCode)</nobr>
1063
1064        <div class="jd-descrdiv">
1065          Returns a PendingIntent to address the provided errorCode.
1066
1067
1068
1069        </div>
1070
1071  </td></tr>
1072
1073
1074
1075    <tr class=" api apilevel-" >
1076        <td class="jd-typecol"><nobr>
1077
1078
1079
1080            static
1081
1082            String</nobr>
1083        </td>
1084        <td class="jd-linkcol" width="100%"><nobr>
1085        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorString(int)">getErrorString</a></span>(int errorCode)</nobr>
1086
1087        <div class="jd-descrdiv">
1088          Returns a human-readable string of the error code returned from
1089 <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable(Context)</a></code>.
1090
1091
1092
1093        </div>
1094
1095  </td></tr>
1096
1097
1098
1099    <tr class="alt-color api apilevel-" >
1100        <td class="jd-typecol"><nobr>
1101
1102
1103
1104            static
1105
1106            String</nobr>
1107        </td>
1108        <td class="jd-linkcol" width="100%"><nobr>
1109        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getOpenSourceSoftwareLicenseInfo(android.content.Context)">getOpenSourceSoftwareLicenseInfo</a></span>(Context context)</nobr>
1110
1111        <div class="jd-descrdiv">
1112          Returns the open source software license information for the Google Play services
1113 application, or null if Google Play services is not available on this device.
1114
1115
1116
1117        </div>
1118
1119  </td></tr>
1120
1121
1122
1123    <tr class=" api apilevel-" >
1124        <td class="jd-typecol"><nobr>
1125
1126
1127
1128            static
1129
1130            Context</nobr>
1131        </td>
1132        <td class="jd-linkcol" width="100%"><nobr>
1133        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getRemoteContext(android.content.Context)">getRemoteContext</a></span>(Context context)</nobr>
1134
1135        <div class="jd-descrdiv">
1136          This gets the Context object of the Buddy APK.
1137
1138
1139
1140        </div>
1141
1142  </td></tr>
1143
1144
1145
1146    <tr class="alt-color api apilevel-" >
1147        <td class="jd-typecol"><nobr>
1148
1149
1150
1151            static
1152
1153            Resources</nobr>
1154        </td>
1155        <td class="jd-linkcol" width="100%"><nobr>
1156        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getRemoteResource(android.content.Context)">getRemoteResource</a></span>(Context context)</nobr>
1157
1158        <div class="jd-descrdiv">
1159          This gets the Resources object of the Buddy APK.
1160
1161
1162
1163        </div>
1164
1165  </td></tr>
1166
1167
1168
1169    <tr class=" api apilevel-" >
1170        <td class="jd-typecol"><nobr>
1171
1172
1173
1174            static
1175
1176            int</nobr>
1177        </td>
1178        <td class="jd-linkcol" width="100%"><nobr>
1179        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable</a></span>(Context context)</nobr>
1180
1181        <div class="jd-descrdiv">
1182          Verifies that Google Play services is installed and enabled on this device, and that the
1183 version installed on this device is no older than the one required by this client.
1184
1185
1186
1187        </div>
1188
1189  </td></tr>
1190
1191
1192
1193    <tr class="alt-color api apilevel-" >
1194        <td class="jd-typecol"><nobr>
1195
1196
1197
1198            static
1199
1200            boolean</nobr>
1201        </td>
1202        <td class="jd-linkcol" width="100%"><nobr>
1203        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGoogleSignedUid(android.content.pm.PackageManager, int)">isGoogleSignedUid</a></span>(PackageManager packageManager, int uid)</nobr>
1204
1205        <div class="jd-descrdiv">
1206          Throws SecurityException if uid does not belong to a Google signed app.
1207
1208
1209
1210        </div>
1211
1212  </td></tr>
1213
1214
1215
1216    <tr class=" api apilevel-" >
1217        <td class="jd-typecol"><nobr>
1218
1219
1220
1221            static
1222
1223            boolean</nobr>
1224        </td>
1225        <td class="jd-linkcol" width="100%"><nobr>
1226        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isUserRecoverableError(int)">isUserRecoverableError</a></span>(int errorCode)</nobr>
1227
1228        <div class="jd-descrdiv">
1229          Determines whether an error is user-recoverable.
1230
1231
1232
1233        </div>
1234
1235  </td></tr>
1236
1237
1238
1239    <tr class="alt-color api apilevel-" >
1240        <td class="jd-typecol"><nobr>
1241
1242
1243
1244            static
1245
1246            boolean</nobr>
1247        </td>
1248        <td class="jd-linkcol" width="100%"><nobr>
1249        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#showErrorDialogFragment(int, android.app.Activity, int)">showErrorDialogFragment</a></span>(int errorCode, Activity activity, int requestCode)</nobr>
1250
1251        <div class="jd-descrdiv">
1252          Display a DialogFragment for an error code returned by
1253 <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable(Context)</a></code>.
1254
1255
1256
1257        </div>
1258
1259  </td></tr>
1260
1261
1262
1263    <tr class=" api apilevel-" >
1264        <td class="jd-typecol"><nobr>
1265
1266
1267
1268            static
1269
1270            boolean</nobr>
1271        </td>
1272        <td class="jd-linkcol" width="100%"><nobr>
1273        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#showErrorDialogFragment(int, android.app.Activity, android.support.v4.app.Fragment, int, android.content.DialogInterface.OnCancelListener)">showErrorDialogFragment</a></span>(int errorCode, Activity activity, Fragment fragment, int requestCode, DialogInterface.OnCancelListener cancelListener)</nobr>
1274
1275  </td></tr>
1276
1277
1278
1279    <tr class="alt-color api apilevel-" >
1280        <td class="jd-typecol"><nobr>
1281
1282
1283
1284            static
1285
1286            boolean</nobr>
1287        </td>
1288        <td class="jd-linkcol" width="100%"><nobr>
1289        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#showErrorDialogFragment(int, android.app.Activity, int, android.content.DialogInterface.OnCancelListener)">showErrorDialogFragment</a></span>(int errorCode, Activity activity, int requestCode, DialogInterface.OnCancelListener cancelListener)</nobr>
1290
1291        <div class="jd-descrdiv">
1292          Display a DialogFragment for an error code returned by
1293 <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable(Context)</a></code>.
1294
1295
1296
1297        </div>
1298
1299  </td></tr>
1300
1301
1302
1303    <tr class=" api apilevel-" >
1304        <td class="jd-typecol"><nobr>
1305
1306
1307
1308            static
1309
1310            void</nobr>
1311        </td>
1312        <td class="jd-linkcol" width="100%"><nobr>
1313        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#showErrorNotification(int, android.content.Context)">showErrorNotification</a></span>(int errorCode, Context context)</nobr>
1314
1315        <div class="jd-descrdiv">
1316          Displays a notification relevant to the provided error code.
1317
1318
1319
1320        </div>
1321
1322  </td></tr>
1323
1324
1325
1326</table>
1327
1328
1329
1330
1331
1332
1333
1334<!-- ========== METHOD SUMMARY =========== -->
1335<table id="inhmethods" class="jd-sumtable"><tr><th>
1336  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
1337  <div style="clear:left;">Inherited Methods</div></th></tr>
1338
1339
1340<tr class="api apilevel-" >
1341<td colspan="12">
1342  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
1343          ><img id="inherited-methods-java.lang.Object-trigger"
1344          src="/assets/images/triangle-closed.png"
1345          class="jd-expando-trigger-img" /></a>
1346From class
1347
1348  java.lang.Object
1349
1350<div id="inherited-methods-java.lang.Object">
1351  <div id="inherited-methods-java.lang.Object-list"
1352        class="jd-inheritedlinks">
1353  </div>
1354  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
1355    <table class="jd-sumtable-expando">
1356
1357
1358
1359
1360    <tr class="alt-color api apilevel-" >
1361        <td class="jd-typecol"><nobr>
1362
1363
1364
1365
1366
1367            Object</nobr>
1368        </td>
1369        <td class="jd-linkcol" width="100%"><nobr>
1370        <span class="sympad">clone</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            boolean</nobr>
1384        </td>
1385        <td class="jd-linkcol" width="100%"><nobr>
1386        <span class="sympad">equals</span>(Object arg0)</nobr>
1387
1388  </td></tr>
1389
1390
1391
1392    <tr class="alt-color api apilevel-" >
1393        <td class="jd-typecol"><nobr>
1394
1395
1396
1397
1398
1399            void</nobr>
1400        </td>
1401        <td class="jd-linkcol" width="100%"><nobr>
1402        <span class="sympad">finalize</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            Class&lt;?&gt;</nobr>
1416        </td>
1417        <td class="jd-linkcol" width="100%"><nobr>
1418        <span class="sympad">getClass</span>()</nobr>
1419
1420  </td></tr>
1421
1422
1423
1424    <tr class="alt-color api apilevel-" >
1425        <td class="jd-typecol"><nobr>
1426
1427
1428
1429
1430
1431            int</nobr>
1432        </td>
1433        <td class="jd-linkcol" width="100%"><nobr>
1434        <span class="sympad">hashCode</span>()</nobr>
1435
1436  </td></tr>
1437
1438
1439
1440    <tr class=" api apilevel-" >
1441        <td class="jd-typecol"><nobr>
1442
1443
1444            final
1445
1446
1447            void</nobr>
1448        </td>
1449        <td class="jd-linkcol" width="100%"><nobr>
1450        <span class="sympad">notify</span>()</nobr>
1451
1452  </td></tr>
1453
1454
1455
1456    <tr class="alt-color api apilevel-" >
1457        <td class="jd-typecol"><nobr>
1458
1459
1460            final
1461
1462
1463            void</nobr>
1464        </td>
1465        <td class="jd-linkcol" width="100%"><nobr>
1466        <span class="sympad">notifyAll</span>()</nobr>
1467
1468  </td></tr>
1469
1470
1471
1472    <tr class=" api apilevel-" >
1473        <td class="jd-typecol"><nobr>
1474
1475
1476
1477
1478
1479            String</nobr>
1480        </td>
1481        <td class="jd-linkcol" width="100%"><nobr>
1482        <span class="sympad">toString</span>()</nobr>
1483
1484  </td></tr>
1485
1486
1487
1488    <tr class="alt-color api apilevel-" >
1489        <td class="jd-typecol"><nobr>
1490
1491
1492            final
1493
1494
1495            void</nobr>
1496        </td>
1497        <td class="jd-linkcol" width="100%"><nobr>
1498        <span class="sympad">wait</span>()</nobr>
1499
1500  </td></tr>
1501
1502
1503
1504    <tr class=" api apilevel-" >
1505        <td class="jd-typecol"><nobr>
1506
1507
1508            final
1509
1510
1511            void</nobr>
1512        </td>
1513        <td class="jd-linkcol" width="100%"><nobr>
1514        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
1515
1516  </td></tr>
1517
1518
1519
1520    <tr class="alt-color api apilevel-" >
1521        <td class="jd-typecol"><nobr>
1522
1523
1524            final
1525
1526
1527            void</nobr>
1528        </td>
1529        <td class="jd-linkcol" width="100%"><nobr>
1530        <span class="sympad">wait</span>(long arg0)</nobr>
1531
1532  </td></tr>
1533
1534
1535</table>
1536  </div>
1537</div>
1538</td></tr>
1539
1540
1541</table>
1542
1543
1544</div><!-- jd-descr (summary) -->
1545
1546<!-- Details -->
1547
1548
1549
1550
1551
1552
1553
1554
1555<!-- XML Attributes -->
1556
1557
1558<!-- Enum Values -->
1559
1560
1561<!-- Constants -->
1562
1563
1564<!-- ========= ENUM CONSTANTS DETAIL ======== -->
1565<h2>Constants</h2>
1566
1567
1568
1569
1570<A NAME="GMS_ERROR_DIALOG"></A>
1571
1572<div class="jd-details api apilevel-">
1573    <h4 class="jd-details-title">
1574      <span class="normal">
1575        public
1576        static
1577        final
1578        String
1579      </span>
1580        GMS_ERROR_DIALOG
1581    </h4>
1582      <div class="api-level">
1583
1584
1585
1586
1587      </div>
1588    <div class="jd-details-descr">
1589
1590
1591
1592
1593  <div class="jd-tagdata jd-tagdescr"><p></p></div>
1594
1595
1596        <div class="jd-tagdata">
1597        <span class="jd-tagtitle">Constant Value: </span>
1598        <span>
1599
1600                "GooglePlayServicesErrorDialog"
1601
1602        </span>
1603        </div>
1604
1605    </div>
1606</div>
1607
1608
1609
1610<A NAME="GOOGLE_PLAY_SERVICES_PACKAGE"></A>
1611
1612<div class="jd-details api apilevel-">
1613    <h4 class="jd-details-title">
1614      <span class="normal">
1615        public
1616        static
1617        final
1618        String
1619      </span>
1620        GOOGLE_PLAY_SERVICES_PACKAGE
1621    </h4>
1622      <div class="api-level">
1623
1624
1625
1626
1627      </div>
1628    <div class="jd-details-descr">
1629
1630
1631
1632
1633  <div class="jd-tagdata jd-tagdescr"><p>Package name for Google Play services.
1634</p></div>
1635
1636
1637        <div class="jd-tagdata">
1638        <span class="jd-tagtitle">Constant Value: </span>
1639        <span>
1640
1641                "com.google.android.gms"
1642
1643        </span>
1644        </div>
1645
1646    </div>
1647</div>
1648
1649
1650
1651<A NAME="GOOGLE_PLAY_SERVICES_VERSION_CODE"></A>
1652
1653<div class="jd-details api apilevel-">
1654    <h4 class="jd-details-title">
1655      <span class="normal">
1656        public
1657        static
1658        final
1659        int
1660      </span>
1661        GOOGLE_PLAY_SERVICES_VERSION_CODE
1662    </h4>
1663      <div class="api-level">
1664
1665
1666
1667
1668      </div>
1669    <div class="jd-details-descr">
1670
1671
1672
1673
1674  <div class="jd-tagdata jd-tagdescr"><p>Google Play services client library version (declared in library's
1675 AndroidManifest.xml android:versionCode).
1676</p></div>
1677
1678
1679        <div class="jd-tagdata">
1680        <span class="jd-tagtitle">Constant Value: </span>
1681        <span>
1682
1683                6587000
1684                (0x00648278)
1685
1686        </span>
1687        </div>
1688
1689    </div>
1690</div>
1691
1692
1693
1694<A NAME="GOOGLE_PLAY_STORE_PACKAGE"></A>
1695
1696<div class="jd-details api apilevel-">
1697    <h4 class="jd-details-title">
1698      <span class="normal">
1699        public
1700        static
1701        final
1702        String
1703      </span>
1704        GOOGLE_PLAY_STORE_PACKAGE
1705    </h4>
1706      <div class="api-level">
1707
1708
1709
1710
1711      </div>
1712    <div class="jd-details-descr">
1713
1714
1715
1716
1717  <div class="jd-tagdata jd-tagdescr"><p>Package name for Google Play services.
1718</p></div>
1719
1720
1721        <div class="jd-tagdata">
1722        <span class="jd-tagtitle">Constant Value: </span>
1723        <span>
1724
1725                "com.android.vending"
1726
1727        </span>
1728        </div>
1729
1730    </div>
1731</div>
1732
1733
1734
1735
1736<!-- Fields -->
1737
1738
1739<!-- Public ctors -->
1740
1741
1742
1743<!-- ========= CONSTRUCTOR DETAIL ======== -->
1744<!-- Protected ctors -->
1745
1746
1747
1748<!-- ========= METHOD DETAIL ======== -->
1749<!-- Public methdos -->
1750
1751<h2>Public Methods</h2>
1752
1753
1754
1755<A NAME="getErrorDialog(int, android.app.Activity, int)"></A>
1756
1757<div class="jd-details api apilevel-">
1758    <h4 class="jd-details-title">
1759      <span class="normal">
1760        public
1761        static
1762
1763
1764
1765        Dialog
1766      </span>
1767      <span class="sympad">getErrorDialog</span>
1768      <span class="normal">(int errorCode, Activity activity, int requestCode)</span>
1769    </h4>
1770      <div class="api-level">
1771        <div></div>
1772
1773
1774
1775      </div>
1776    <div class="jd-details-descr">
1777
1778
1779
1780
1781  <div class="jd-tagdata jd-tagdescr"><p>Returns a dialog to address the provided errorCode. The returned dialog displays a localized
1782 message about the error and upon user confirmation (by tapping on dialog) will direct them to
1783 the Play Store if Google Play services is out of date or missing, or to system settings if
1784 Google Play services is disabled on the device.</p></div>
1785  <div class="jd-tagdata">
1786      <h5 class="jd-tagtitle">Parameters</h5>
1787      <table class="jd-tagtable">
1788        <tr>
1789          <th>errorCode</td>
1790          <td>error code returned by <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable(Context)</a></code> call.
1791            If errorCode is <code><a href="/reference/com/google/android/gms/common/ConnectionResult.html#SUCCESS">SUCCESS</a></code> then null is returned.</td>
1792        </tr>
1793        <tr>
1794          <th>activity</td>
1795          <td>parent activity for creating the dialog, also used for identifying language
1796            to display dialog in.</td>
1797        </tr>
1798        <tr>
1799          <th>requestCode</td>
1800          <td>The requestCode given when calling startActivityForResult.
1801</td>
1802        </tr>
1803      </table>
1804  </div>
1805
1806    </div>
1807</div>
1808
1809
1810<A NAME="getErrorDialog(int, android.app.Activity, int, android.content.DialogInterface.OnCancelListener)"></A>
1811
1812<div class="jd-details api apilevel-">
1813    <h4 class="jd-details-title">
1814      <span class="normal">
1815        public
1816        static
1817
1818
1819
1820        Dialog
1821      </span>
1822      <span class="sympad">getErrorDialog</span>
1823      <span class="normal">(int errorCode, Activity activity, int requestCode, DialogInterface.OnCancelListener cancelListener)</span>
1824    </h4>
1825      <div class="api-level">
1826        <div></div>
1827
1828
1829
1830      </div>
1831    <div class="jd-details-descr">
1832
1833
1834
1835
1836  <div class="jd-tagdata jd-tagdescr"><p>Returns a dialog to address the provided errorCode. The returned dialog displays a localized
1837 message about the error and upon user confirmation (by tapping on dialog) will direct them to
1838 the Play Store if Google Play services is out of date or missing, or to system settings if
1839 Google Play services is disabled on the device.</p></div>
1840  <div class="jd-tagdata">
1841      <h5 class="jd-tagtitle">Parameters</h5>
1842      <table class="jd-tagtable">
1843        <tr>
1844          <th>errorCode</td>
1845          <td>error code returned by <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable(Context)</a></code> call.
1846            If errorCode is <code><a href="/reference/com/google/android/gms/common/ConnectionResult.html#SUCCESS">SUCCESS</a></code> then null is returned.</td>
1847        </tr>
1848        <tr>
1849          <th>activity</td>
1850          <td>parent activity for creating the dialog, also used for identifying language
1851            to display dialog in.</td>
1852        </tr>
1853        <tr>
1854          <th>requestCode</td>
1855          <td>The requestCode given when calling startActivityForResult.</td>
1856        </tr>
1857        <tr>
1858          <th>cancelListener</td>
1859          <td>The <code><a href="/reference/android/content/DialogInterface.OnCancelListener.html">DialogInterface.OnCancelListener</a></code> to invoke if the dialog is
1860            canceled.
1861</td>
1862        </tr>
1863      </table>
1864  </div>
1865
1866    </div>
1867</div>
1868
1869
1870<A NAME="getErrorPendingIntent(int, android.content.Context, int)"></A>
1871
1872<div class="jd-details api apilevel-">
1873    <h4 class="jd-details-title">
1874      <span class="normal">
1875        public
1876        static
1877
1878
1879
1880        PendingIntent
1881      </span>
1882      <span class="sympad">getErrorPendingIntent</span>
1883      <span class="normal">(int errorCode, Context context, int requestCode)</span>
1884    </h4>
1885      <div class="api-level">
1886        <div></div>
1887
1888
1889
1890      </div>
1891    <div class="jd-details-descr">
1892
1893
1894
1895
1896  <div class="jd-tagdata jd-tagdescr"><p>Returns a PendingIntent to address the provided errorCode. It will direct them to one of the
1897 following places to either the Play Store if Google Play services is out of date or missing,
1898 or system settings if Google Play services is disabled on the device.</p></div>
1899  <div class="jd-tagdata">
1900      <h5 class="jd-tagtitle">Parameters</h5>
1901      <table class="jd-tagtable">
1902        <tr>
1903          <th>errorCode</td>
1904          <td>error code returned by <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable(Context)</a></code> call.
1905            If errorCode is <code><a href="/reference/com/google/android/gms/common/ConnectionResult.html#SUCCESS">SUCCESS</a></code> then null is returned.</td>
1906        </tr>
1907        <tr>
1908          <th>context</td>
1909          <td>parent context for creating the PendingIntent.</td>
1910        </tr>
1911        <tr>
1912          <th>requestCode</td>
1913          <td>The requestCode given when calling startActivityForResult.
1914</td>
1915        </tr>
1916      </table>
1917  </div>
1918
1919    </div>
1920</div>
1921
1922
1923<A NAME="getErrorString(int)"></A>
1924
1925<div class="jd-details api apilevel-">
1926    <h4 class="jd-details-title">
1927      <span class="normal">
1928        public
1929        static
1930
1931
1932
1933        String
1934      </span>
1935      <span class="sympad">getErrorString</span>
1936      <span class="normal">(int errorCode)</span>
1937    </h4>
1938      <div class="api-level">
1939        <div></div>
1940
1941
1942
1943      </div>
1944    <div class="jd-details-descr">
1945
1946
1947
1948
1949  <div class="jd-tagdata jd-tagdescr"><p>Returns a human-readable string of the error code returned from
1950 <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable(Context)</a></code>.
1951</p></div>
1952
1953    </div>
1954</div>
1955
1956
1957<A NAME="getOpenSourceSoftwareLicenseInfo(android.content.Context)"></A>
1958
1959<div class="jd-details api apilevel-">
1960    <h4 class="jd-details-title">
1961      <span class="normal">
1962        public
1963        static
1964
1965
1966
1967        String
1968      </span>
1969      <span class="sympad">getOpenSourceSoftwareLicenseInfo</span>
1970      <span class="normal">(Context context)</span>
1971    </h4>
1972      <div class="api-level">
1973        <div></div>
1974
1975
1976
1977      </div>
1978    <div class="jd-details-descr">
1979
1980
1981
1982
1983  <div class="jd-tagdata jd-tagdescr"><p>Returns the open source software license information for the Google Play services
1984 application, or null if Google Play services is not available on this device.
1985</p></div>
1986
1987    </div>
1988</div>
1989
1990
1991<A NAME="getRemoteContext(android.content.Context)"></A>
1992
1993<div class="jd-details api apilevel-">
1994    <h4 class="jd-details-title">
1995      <span class="normal">
1996        public
1997        static
1998
1999
2000
2001        Context
2002      </span>
2003      <span class="sympad">getRemoteContext</span>
2004      <span class="normal">(Context context)</span>
2005    </h4>
2006      <div class="api-level">
2007        <div></div>
2008
2009
2010
2011      </div>
2012    <div class="jd-details-descr">
2013
2014
2015
2016
2017  <div class="jd-tagdata jd-tagdescr"><p>This gets the Context object of the Buddy APK. This loads the Buddy APK code from the Buddy
2018 APK into memory. This returned context can be used to create classes and obtain resources
2019 defined in the Buddy APK.</p></div>
2020  <div class="jd-tagdata">
2021      <h5 class="jd-tagtitle">Returns</h5>
2022      <ul class="nolist"><li>The Context object of the Buddy APK or null if the Buddy APK is not installed on the
2023         device.
2024</li></ul>
2025  </div>
2026
2027    </div>
2028</div>
2029
2030
2031<A NAME="getRemoteResource(android.content.Context)"></A>
2032
2033<div class="jd-details api apilevel-">
2034    <h4 class="jd-details-title">
2035      <span class="normal">
2036        public
2037        static
2038
2039
2040
2041        Resources
2042      </span>
2043      <span class="sympad">getRemoteResource</span>
2044      <span class="normal">(Context context)</span>
2045    </h4>
2046      <div class="api-level">
2047        <div></div>
2048
2049
2050
2051      </div>
2052    <div class="jd-details-descr">
2053
2054
2055
2056
2057  <div class="jd-tagdata jd-tagdescr"><p>This gets the Resources object of the Buddy APK.</p></div>
2058  <div class="jd-tagdata">
2059      <h5 class="jd-tagtitle">Returns</h5>
2060      <ul class="nolist"><li>The Resources object of the Buddy APK or null if the Buddy APK is not installed on
2061         the device.
2062</li></ul>
2063  </div>
2064
2065    </div>
2066</div>
2067
2068
2069<A NAME="isGooglePlayServicesAvailable(android.content.Context)"></A>
2070
2071<div class="jd-details api apilevel-">
2072    <h4 class="jd-details-title">
2073      <span class="normal">
2074        public
2075        static
2076
2077
2078
2079        int
2080      </span>
2081      <span class="sympad">isGooglePlayServicesAvailable</span>
2082      <span class="normal">(Context context)</span>
2083    </h4>
2084      <div class="api-level">
2085        <div></div>
2086
2087
2088
2089      </div>
2090    <div class="jd-details-descr">
2091
2092
2093
2094
2095  <div class="jd-tagdata jd-tagdescr"><p>Verifies that Google Play services is installed and enabled on this device, and that the
2096 version installed on this device is no older than the one required by this client.</p></div>
2097  <div class="jd-tagdata">
2098      <h5 class="jd-tagtitle">Returns</h5>
2099      <ul class="nolist"><li>status code indicating whether there was an error.  Can be one of following in
2100         <code><a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a></code>: SUCCESS, SERVICE_MISSING,
2101         SERVICE_VERSION_UPDATE_REQUIRED, SERVICE_DISABLED, SERVICE_INVALID
2102</li></ul>
2103  </div>
2104
2105    </div>
2106</div>
2107
2108
2109<A NAME="isGoogleSignedUid(android.content.pm.PackageManager, int)"></A>
2110
2111<div class="jd-details api apilevel-">
2112    <h4 class="jd-details-title">
2113      <span class="normal">
2114        public
2115        static
2116
2117
2118
2119        boolean
2120      </span>
2121      <span class="sympad">isGoogleSignedUid</span>
2122      <span class="normal">(PackageManager packageManager, int uid)</span>
2123    </h4>
2124      <div class="api-level">
2125        <div></div>
2126
2127
2128
2129      </div>
2130    <div class="jd-details-descr">
2131
2132
2133
2134
2135  <div class="jd-tagdata jd-tagdescr"><p>Throws SecurityException if uid does not belong to a Google signed app.
2136</p></div>
2137
2138    </div>
2139</div>
2140
2141
2142<A NAME="isUserRecoverableError(int)"></A>
2143
2144<div class="jd-details api apilevel-">
2145    <h4 class="jd-details-title">
2146      <span class="normal">
2147        public
2148        static
2149
2150
2151
2152        boolean
2153      </span>
2154      <span class="sympad">isUserRecoverableError</span>
2155      <span class="normal">(int errorCode)</span>
2156    </h4>
2157      <div class="api-level">
2158        <div></div>
2159
2160
2161
2162      </div>
2163    <div class="jd-details-descr">
2164
2165
2166
2167
2168  <div class="jd-tagdata jd-tagdescr"><p>Determines whether an error is user-recoverable. If true, proceed by calling
2169 <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorDialog(int, android.app.Activity, int)">getErrorDialog(int, Activity, int)</a></code> and showing the dialog.</p></div>
2170  <div class="jd-tagdata">
2171      <h5 class="jd-tagtitle">Parameters</h5>
2172      <table class="jd-tagtable">
2173        <tr>
2174          <th>errorCode</td>
2175          <td>error code returned by <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable(Context)</a></code>, or
2176       returned to your application via
2177       onConnectionFailed(ConnectionResult)</td>
2178        </tr>
2179      </table>
2180  </div>
2181  <div class="jd-tagdata">
2182      <h5 class="jd-tagtitle">Returns</h5>
2183      <ul class="nolist"><li>true if the error is recoverable with
2184         <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorDialog(int, android.app.Activity, int)">getErrorDialog(int, Activity, int)</a></code>
2185</li></ul>
2186  </div>
2187
2188    </div>
2189</div>
2190
2191
2192<A NAME="showErrorDialogFragment(int, android.app.Activity, int)"></A>
2193
2194<div class="jd-details api apilevel-">
2195    <h4 class="jd-details-title">
2196      <span class="normal">
2197        public
2198        static
2199
2200
2201
2202        boolean
2203      </span>
2204      <span class="sympad">showErrorDialogFragment</span>
2205      <span class="normal">(int errorCode, Activity activity, int requestCode)</span>
2206    </h4>
2207      <div class="api-level">
2208        <div></div>
2209
2210
2211
2212      </div>
2213    <div class="jd-details-descr">
2214
2215
2216
2217
2218  <div class="jd-tagdata jd-tagdescr"><p>Display a DialogFragment for an error code returned by
2219 <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable(Context)</a></code>.</p></div>
2220  <div class="jd-tagdata">
2221      <h5 class="jd-tagtitle">Parameters</h5>
2222      <table class="jd-tagtable">
2223        <tr>
2224          <th>errorCode</td>
2225          <td>error code returned by
2226            <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable(Context)</a></code> call. If
2227            errorCode is <code><a href="/reference/com/google/android/gms/common/ConnectionResult.html#SUCCESS">SUCCESS</a></code> then this
2228            does nothing.</td>
2229        </tr>
2230        <tr>
2231          <th>activity</td>
2232          <td>parent activity for creating the dialog, also used for
2233            identifying language to display dialog in.</td>
2234        </tr>
2235        <tr>
2236          <th>requestCode</td>
2237          <td>The requestCode given when calling
2238            startActivityForResult.</td>
2239        </tr>
2240      </table>
2241  </div>
2242  <div class="jd-tagdata">
2243      <h5 class="jd-tagtitle">Returns</h5>
2244      <ul class="nolist"><li>true if the dialog is shown, false otherwise</li></ul>
2245  </div>
2246  <div class="jd-tagdata">
2247      <h5 class="jd-tagtitle">Throws</h5>
2248      <table class="jd-tagtable">
2249        <tr>
2250            <th>RuntimeException</td>
2251            <td>if API level is below 11 and <code>activity</code> is not a
2252            <code><a href="/reference/android/support/v4/app/FragmentActivity.html">FragmentActivity</a></code>.</td>
2253        </tr>
2254      </table>
2255  </div>
2256  <div class="jd-tagdata">
2257      <h5 class="jd-tagtitle">See Also</h5>
2258      <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/common/ErrorDialogFragment.html">ErrorDialogFragment</a></code></li><li><code><a href="/reference/default package/SupportErrorDialogFragment.html">SupportErrorDialogFragment</a></code></li>
2259      </ul>
2260  </div>
2261
2262    </div>
2263</div>
2264
2265
2266<A NAME="showErrorDialogFragment(int, android.app.Activity, android.support.v4.app.Fragment, int, android.content.DialogInterface.OnCancelListener)"></A>
2267
2268<div class="jd-details api apilevel-">
2269    <h4 class="jd-details-title">
2270      <span class="normal">
2271        public
2272        static
2273
2274
2275
2276        boolean
2277      </span>
2278      <span class="sympad">showErrorDialogFragment</span>
2279      <span class="normal">(int errorCode, Activity activity, Fragment fragment, int requestCode, DialogInterface.OnCancelListener cancelListener)</span>
2280    </h4>
2281      <div class="api-level">
2282        <div></div>
2283
2284
2285
2286      </div>
2287    <div class="jd-details-descr">
2288
2289
2290
2291
2292  <div class="jd-tagdata jd-tagdescr"><p></p></div>
2293
2294    </div>
2295</div>
2296
2297
2298<A NAME="showErrorDialogFragment(int, android.app.Activity, int, android.content.DialogInterface.OnCancelListener)"></A>
2299
2300<div class="jd-details api apilevel-">
2301    <h4 class="jd-details-title">
2302      <span class="normal">
2303        public
2304        static
2305
2306
2307
2308        boolean
2309      </span>
2310      <span class="sympad">showErrorDialogFragment</span>
2311      <span class="normal">(int errorCode, Activity activity, int requestCode, DialogInterface.OnCancelListener cancelListener)</span>
2312    </h4>
2313      <div class="api-level">
2314        <div></div>
2315
2316
2317
2318      </div>
2319    <div class="jd-details-descr">
2320
2321
2322
2323
2324  <div class="jd-tagdata jd-tagdescr"><p>Display a DialogFragment for an error code returned by
2325 <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable(Context)</a></code>.</p></div>
2326  <div class="jd-tagdata">
2327      <h5 class="jd-tagtitle">Parameters</h5>
2328      <table class="jd-tagtable">
2329        <tr>
2330          <th>errorCode</td>
2331          <td>error code returned by
2332            <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable(Context)</a></code> call. If
2333            errorCode is <code><a href="/reference/com/google/android/gms/common/ConnectionResult.html#SUCCESS">SUCCESS</a></code> then this
2334            does nothing</td>
2335        </tr>
2336        <tr>
2337          <th>activity</td>
2338          <td>parent activity for creating the dialog, also used for
2339            identifying language to display dialog in.</td>
2340        </tr>
2341        <tr>
2342          <th>requestCode</td>
2343          <td>The requestCode given when calling
2344            startActivityForResult.</td>
2345        </tr>
2346        <tr>
2347          <th>cancelListener</td>
2348          <td>The <code><a href="/reference/android/content/DialogInterface.OnCancelListener.html">DialogInterface.OnCancelListener</a></code> to
2349            invoke if the dialog is canceled.</td>
2350        </tr>
2351      </table>
2352  </div>
2353  <div class="jd-tagdata">
2354      <h5 class="jd-tagtitle">Returns</h5>
2355      <ul class="nolist"><li>true if the dialog is shown, false otherwise.</li></ul>
2356  </div>
2357  <div class="jd-tagdata">
2358      <h5 class="jd-tagtitle">Throws</h5>
2359      <table class="jd-tagtable">
2360        <tr>
2361            <th>RuntimeException</td>
2362            <td>if API level is below 11 and <code>activity</code> is not a
2363            <code><a href="/reference/android/support/v4/app/FragmentActivity.html">FragmentActivity</a></code>.</td>
2364        </tr>
2365      </table>
2366  </div>
2367  <div class="jd-tagdata">
2368      <h5 class="jd-tagtitle">See Also</h5>
2369      <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/common/ErrorDialogFragment.html">ErrorDialogFragment</a></code></li><li><code><a href="/reference/default package/SupportErrorDialogFragment.html">SupportErrorDialogFragment</a></code></li>
2370      </ul>
2371  </div>
2372
2373    </div>
2374</div>
2375
2376
2377<A NAME="showErrorNotification(int, android.content.Context)"></A>
2378
2379<div class="jd-details api apilevel-">
2380    <h4 class="jd-details-title">
2381      <span class="normal">
2382        public
2383        static
2384
2385
2386
2387        void
2388      </span>
2389      <span class="sympad">showErrorNotification</span>
2390      <span class="normal">(int errorCode, Context context)</span>
2391    </h4>
2392      <div class="api-level">
2393        <div></div>
2394
2395
2396
2397      </div>
2398    <div class="jd-details-descr">
2399
2400
2401
2402
2403  <div class="jd-tagdata jd-tagdescr"><p>Displays a notification relevant to the provided error code. This method is similar to
2404 <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorDialog(int, android.app.Activity, int)">getErrorDialog(int, android.app.Activity, int)</a></code>, but is provided for background tasks
2405 that cannot or shouldn't display dialogs.</p></div>
2406  <div class="jd-tagdata">
2407      <h5 class="jd-tagtitle">Parameters</h5>
2408      <table class="jd-tagtable">
2409        <tr>
2410          <th>errorCode</td>
2411          <td>error code returned by <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable(Context)</a></code> call.
2412            If errorCode is <code><a href="/reference/com/google/android/gms/common/ConnectionResult.html#SUCCESS">SUCCESS</a></code> then null is returned.</td>
2413        </tr>
2414        <tr>
2415          <th>context</td>
2416          <td>used for identifying language to display dialog in as well as accessing the
2417            <code><a href="/reference/android/app/NotificationManager.html">NotificationManager</a></code>.
2418</td>
2419        </tr>
2420      </table>
2421  </div>
2422
2423    </div>
2424</div>
2425
2426
2427
2428
2429
2430<!-- ========= METHOD DETAIL ======== -->
2431
2432
2433
2434<!-- ========= END OF CLASS DATA ========= -->
2435<A NAME="navbar_top"></A>
2436
2437<div id="footer" class="wrap" >
2438
2439
2440  <div id="copyright">
2441
2442  Except as noted, this content is licensed under <a
2443  href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
2444  For details and restrictions, see the <a href="/license.html">
2445  Content License</a>.
2446  </div>
2447  <div id="build_info">
2448
2449<script src="/timestamp.js" type="text/javascript"></script>
2450<script>document.write(BUILD_TIMESTAMP)</script>
2451
2452  </div>
2453
2454
2455  <div id="footerlinks">
2456
2457  <p>
2458    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
2459    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
2460    <a href="/support.html">Support</a>
2461  </p>
2462  </div>
2463
2464</div> <!-- end footer -->
2465</div> <!-- jd-content -->
2466
2467</div><!-- end doc-content -->
2468
2469</div> <!-- end body-content -->
2470
2471
2472
2473
2474
2475
2476</body>
2477</html>
2478