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
100
101
102
103
104
105<html>
106<head>
107<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
108
109<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
110<title>com.google.android.gms.auth | Android Developers</title>
111
112<!-- STYLESHEETS -->
113<link rel="stylesheet"
114href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
115<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
116
117
118
119<!-- JAVASCRIPT -->
120<script src="//www.google.com/jsapi" type="text/javascript"></script>
121<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
122<script type="text/javascript">
123  var toRoot = "/";
124  
125  var devsite = false;
126  
127</script>
128<script src="/assets/js/docs.js" type="text/javascript"></script>
129
130<script src="/gms_navtree_data.js" type="text/javascript"></script>
131<script src="/gcm_navtree_data.js" type="text/javascript"></script>
132
133
134<script type="text/javascript">
135  var _gaq = _gaq || [];
136  _gaq.push(['_setAccount', 'UA-5831155-1']);
137  _gaq.push(['_trackPageview']);
138
139  (function() {
140    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
141    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
142    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
143  })();
144</script>
145</head>
146
147<body class="gc-documentation google
148  develop">
149  <div id="doc-api-level" class="" style="display:none"></div>
150  <a name="top"></a>
151
152  
153    <!-- Header -->
154    <div id="header">
155        <div class="wrap" id="header-wrap">
156          <div class="col-3 logo">
157          <a href="/index.html">
158            <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
159          </a>
160          <div class="btn-quicknav" id="btn-quicknav">
161          	<a href="#" class="arrow-inactive">Quicknav</a>
162			      <a href="#" class="arrow-active">Quicknav</a>
163          </div>
164          </div>
165            <ul class="nav-x col-9">
166                <li class="design">
167                  <a href="/design/index.html" 
168                  zh-TW-lang="設è¨"
169                  zh-CN-lang="设计"
170                  ru-lang="ÐÑоекÑиÑование"
171                  ko-lang="ëìì¸"
172                  ja-lang="設è¨"
173                  es-lang="Diseñar"               
174                  >Design</a></li>
175                <li class="develop"><a href="/develop/index.html" class="selected"
176                  zh-TW-lang="éç¼"
177                  zh-CN-lang="å¼å"
178                  ru-lang="РазÑабоÑка"
179                  ko-lang="ê°ë°"
180                  ja-lang="éçº"
181                  es-lang="Desarrollar"               
182                  >Develop</a></li>
183                <li class="distribute last"><a href="/distribute/index.html" 
184                  zh-TW-lang="ç¼ä½"
185                  zh-CN-lang="åå"
186                  ru-lang="РаÑпÑоÑÑÑанение"
187                  ko-lang="ë°°í¬"
188                  ja-lang="éå¸"
189                  es-lang="Distribuir"               
190                  >Distribute</a></li>
191            </ul>
192            
193            <!-- New Search -->
194            <div class="menu-container">
195            <div class="moremenu">
196    <div id="more-btn"></div>
197  </div>
198  <div class="morehover" id="moremenu">
199    <div class="top"></div>
200    <div class="mid">
201      <div class="header">Links</div>
202      <ul>
203        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
204        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
205        <li><a href="/about/index.html">About Android</a></li>
206      </ul>
207      <div class="header">Android Sites</div>
208      <ul>
209        <li><a href="http://www.android.com">Android.com</a></li>
210        <li class="active"><a>Android Developers</a></li>
211        <li><a href="http://source.android.com">Android Open Source Project</a></li>
212      </ul>
213      
214
215      
216      
217        <div class="header">Language</div>
218          <div id="language" class="locales">
219            <select name="language" onChange="changeLangPref(this.value, true)">
220                <option value="en">English</option>
221                <option value="es">Español</option>
222                <option value="ja">æ¥æ¬èª</option>
223                <option value="ko">íêµ­ì´</option>
224                <option value="ru">РÑÑÑкий</option>
225                <option value="zh-CN">中æ (中å½)</option>
226                <option value="zh-TW">中æ (å°ç£)</option>
227            </select>
228          </div>
229        <script type="text/javascript">
230          <!--
231          loadLangPref();
232            //-->
233        </script>
234      
235      
236
237
238      <br class="clearfix" />
239    </div>
240    <div class="bottom"></div>
241  </div>
242  <div class="search" id="search-container">
243    <div class="search-inner">
244      <div id="search-btn"></div>
245      <div class="left"></div>
246      <form onsubmit="return submit_search()">
247        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
248onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
249onkeydown="return search_changed(event, true, '/')" 
250onkeyup="return search_changed(event, false, '/')" />
251      </form>
252      <div class="right"></div>
253        <a class="close hide">close</a>
254        <div class="left"></div>
255        <div class="right"></div>
256    </div>
257  </div>
258  <div id="search_filtered_wrapper">
259    <div id="search_filtered_div" class="no-display">
260        <ul id="search_filtered">
261        </ul>
262    </div>
263  </div>
264  
265  </div>
266  <!-- /New Search>
267          
268          
269          <!-- Expanded quicknav -->
270           <div id="quicknav" class="col-9">
271                <ul>
272                    <li class="design">
273                      <ul>
274                        <li><a href="/design/index.html">Get Started</a></li>
275                        <li><a href="/design/style/index.html">Style</a></li>
276                        <li><a href="/design/patterns/index.html">Patterns</a></li>
277                        <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
278                        <li><a href="/design/downloads/index.html">Downloads</a></li>
279                        <li><a href="/design/videos/index.html">Videos</a></li>
280                      </ul>
281                    </li>
282                    <li class="develop">
283                      <ul>
284                        <li><a href="/training/index.html"
285                          zh-TW-lang="è¨ç·´èª²ç¨"
286                          zh-CN-lang="å¹è®­"
287                          ru-lang="ÐÑÑÑÑ"
288                          ko-lang="êµì¡"
289                          ja-lang="ãã¬ã¼ãã³ã°"
290                          es-lang="Capacitación"               
291                          >Training</a></li>
292                        <li><a href="/guide/components/index.html"
293                          zh-TW-lang="API æå"
294                          zh-CN-lang="API æå"
295                          ru-lang="РÑководÑÑва по API"
296                          ko-lang="API ê°ì´ë"
297                          ja-lang="API ã¬ã¤ã"
298                          es-lang="Guías de la API"               
299                          >API Guides</a></li>
300                        <li><a href="/reference/packages.html"
301                          zh-TW-lang="åèè³æº"
302                          zh-CN-lang="åè"
303                          ru-lang="СпÑавоÑник"
304                          ko-lang="참조문ì"
305                          ja-lang="ãªãã¡ã¬ã³ã¹"
306                          es-lang="Referencia"               
307                          >Reference</a></li>
308                        <li><a href="/tools/index.html"
309                          zh-TW-lang="ç¸éå·¥å·"
310                          zh-CN-lang="å·¥å·"
311                          ru-lang="ÐнÑÑÑÑменÑÑ"
312                          ko-lang="ë구"
313                          ja-lang="ãã¼ã«"
314                          es-lang="Herramientas"               
315                          >Tools</a>
316                          <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
317                        </li>
318                        <li><a href="/google/index.html">Google Services</a>
319                        </li>
320                      </ul>
321                    </li>
322                    <li class="distribute last">
323                      <ul>
324                        <li><a href="/distribute/index.html">Google Play</a></li>
325                        <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
326                        <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
327                        <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
328                        <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
329                        <li><a href="/distribute/open.html">Open Distribution</a></li>
330                      </ul>
331                    </li>
332                </ul>
333          </div>
334          <!-- /Expanded quicknav -->
335        </div>
336    </div>
337    <!-- /Header -->
338    
339    
340  <div id="searchResults" class="wrap" style="display:none;">
341          <h2 id="searchTitle">Results</h2>
342          <div id="leftSearchControl" class="search-control">Loading...</div>
343  </div>
344    
345    
346    
347
348    <!-- Secondary x-nav -->
349    <div id="nav-x">
350        <div class="wrap">
351            <ul class="nav-x col-9 develop" style="width:100%">
352                <li><a href="/training/index.html" 
353                  zh-TW-lang="è¨ç·´èª²ç¨"
354                  zh-CN-lang="å¹è®­"
355                  ru-lang="ÐÑÑÑÑ"
356                  ko-lang="êµì¡"
357                  ja-lang="ãã¬ã¼ãã³ã°"
358                  es-lang="Capacitación"               
359                  >Training</a></li>
360                <li><a href="/guide/components/index.html" 
361                  zh-TW-lang="API æå"
362                  zh-CN-lang="API æå"
363                  ru-lang="РÑководÑÑва по API"
364                  ko-lang="API ê°ì´ë"
365                  ja-lang="API ã¬ã¤ã"
366                  es-lang="Guías de la API"               
367                  >API Guides</a></li>
368                <li><a href="/reference/packages.html" 
369                  zh-TW-lang="åèè³æº"
370                  zh-CN-lang="åè"
371                  ru-lang="СпÑавоÑник"
372                  ko-lang="참조문ì"
373                  ja-lang="ãªãã¡ã¬ã³ã¹"
374                  es-lang="Referencia"               
375                  >Reference</a></li>
376                <li><a href="/tools/index.html" 
377                  zh-TW-lang="ç¸éå·¥å·"
378                  zh-CN-lang="å·¥å·"
379                  ru-lang="ÐнÑÑÑÑменÑÑ"
380                  ko-lang="ë구"
381                  ja-lang="ãã¼ã«"
382                  es-lang="Herramientas"
383                  >Tools</a></li>
384                <li><a href="/google/index.html" class="selected"
385                  >Google Services</a>
386                </li>
387            </ul>
388        </div>
389        
390    </div>
391    <!-- /Sendondary x-nav -->
392
393  
394  
395
396  
397  <div class="wrap clearfix" id="body-content">
398    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
399      <div id="devdoc-nav" class="scroll-pane">
400<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
401
402
403
404<ul id="nav">
405  <li class="nav-section">
406    <div class="nav-section-header empty"><a href="/google/index.html">
407        <span class="en">Overview</span>
408      </a></div>
409  </li>
410
411  <li class="nav-section">
412    <div class="nav-section-header"><a href="/google/play-services/index.html">
413      <span class="en">Google Play Services</span></a>
414    </div>
415    <ul>
416      <li><a href="/google/play-services/setup.html">
417          <span class="en">Setup</span></a>
418      </li>
419
420      <li><a href="/google/play-services/auth.html">
421          <span class="en">Authorization</span></a>
422      </li>
423
424      <li><a href="/google/play-services/plus.html">
425          <span class="en">Google+</span></a>
426      </li>
427
428      <li><a href="/google/play-services/maps.html">
429          <span class="en">Google Maps</span></a>
430      </li>
431
432      <li id="gms-tree-list" class="nav-section">
433        <div class="nav-section-header">
434          <a href="/reference/gms-packages.html">
435            <span class="en">Reference</span>
436          </a>
437        <div>
438      </li>
439
440    </ul>
441  </li>
442
443
444  <li class="nav-section">
445    <div class="nav-section-header"><a href="/google/play/billing/index.html">
446      <span class="en">Google Play In-app Billing</span></a>
447    </div>
448    <ul>
449      <li><a href="/google/play/billing/billing_overview.html">
450              <span class="en">Overview</span></a>
451      </li>
452      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
453              <span class="en">Version 3 API</span></a></div>
454              <ul>
455              <li><a href="/google/play/billing/billing_integrate.html">
456              <span class="en">Implementing the API</span></a></li>
457              <li><a href="/google/play/billing/billing_reference.html">
458              <span class="en">Reference</span></a></li>
459              </ul>
460      </li>
461      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
462              <span class="en">Version 2 API</span></a></div>
463              <ul>
464              <li><a href="/google/play/billing/v2/billing_integrate.html">
465              <span class="en">Implementing the API</span></a></li>
466              <li><a href="/google/play/billing/v2/billing_subscriptions.html">
467              <span class="en">Subscriptions</span></a></li>
468              <li><a href="/google/play/billing/v2/billing_reference.html">
469              <span class="en">Reference</span></a></li>
470              </ul>
471      </li>
472      <li><a href="/google/play/billing/billing_best_practices.html">
473              <span class="en">Security and Design</span></a>
474      </li>
475      <li><a href="/google/play/billing/billing_testing.html">
476              <span class="en">Testing In-app Billing</span></a>
477      </li>
478      <li><a href="/google/play/billing/billing_admin.html">
479              <span class="en">Administering In-app Billing</span></a>
480      </li>
481      <li><a href="/google/play/billing/versions.html">
482              <span class="en">Version Notes</span></a>
483      </li>
484    </ul>
485  </li>
486
487  <li class="nav-section">
488    <div class="nav-section-header"><a href="/google/play/dist.html">
489      <span class="en">Google Play Distribution</span></a>
490    </div>
491    <ul>
492      <li><a href="/google/play/filters.html">
493          <span class="en">Filters on Google Play</span></a>
494      </li>
495
496      <li><a href="/google/play/publishing/multiple-apks.html">
497          <span class="en">Multiple APK Support</span></a>
498      </li>
499      <li><a href="/google/play/expansion-files.html">
500          <span class="en">APK Expansion Files</span></a>
501      </li>
502      <li class="nav-section">
503        <div class="nav-section-header"><a href="/google/play/licensing/index.html">
504          <span class="en">Application Licensing</span></a>
505        </div>
506        <ul>
507          <li><a href="/google/play/licensing/overview.html">
508              <span class="en">Licensing Overview</span></a>
509          </li>
510          <li><a href="/google/play/licensing/setting-up.html">
511              <span class="en">Setting Up for Licensing</span></a>
512          </li>
513          <li><a href="/google/play/licensing/adding-licensing.html">
514              <span class="en">Adding Licensing to Your App</span></a>
515          </li>
516          <li><a href="/google/play/licensing/licensing-reference.html">
517              <span class="en">Licensing Reference</span></a>
518          </li>
519        </ul>
520      </li>
521    </ul>
522  </li>
523
524  <li class="nav-section">
525      <div class="nav-section-header"><a href="/google/gcm/index.html">
526        <span class="en">Google Cloud Messaging</span></a>
527      </div>
528      <ul>
529        <li><a href="/google/gcm/gs.html">
530            <span class="en">Getting Started</span></a>
531        </li>
532        <li><a href="/google/gcm/gcm.html">
533            <span class="en">Architectural Overview</span></a>
534        </li>
535        <li><a href="/google/gcm/demo.html">
536            <span class="en">Demo App Tutorial</span></a>
537        </li>
538        <li><a href="/google/gcm/adv.html">
539            <span class="en">Advanced Topics</span></a>
540        </li>
541        <li><a href="/google/gcm/c2dm.html">
542            <span class="en">Migration</span></a>
543        </li>
544        <li id="gcm-tree-list" class="nav-section">
545          <div class="nav-section-header">
546            <a href="/reference/gcm-packages.html">
547              <span class="en">Reference</span>
548            </a>
549          <div>
550        </li>
551      </ul>
552  </li>
553
554
555  <li class="nav-section">
556    <div class="nav-section-header"><a href="/google/backup/index.html">
557      Android Backup Service</a>
558    </div>
559    <ul>
560      <li><a href="/google/backup/signup.html">
561          Register</a>
562      </li>
563    </ul>
564  </li>
565
566</ul>
567
568<script type="text/javascript">
569<!--
570    buildToggleLists();
571    changeNavLang(getLangPref());
572//-->
573</script>
574
575
576        
577
578      </div>
579      <script type="text/javascript">
580       showGoogleRefTree();
581    
582      </script>
583
584    </div> <!-- end side-nav -->
585    <script>
586      $(document).ready(function() {
587        scrollIntoView("devdoc-nav");
588        });
589    </script>
590
591
592     
593
594
595
596<div class="col-12" id="doc-col">
597
598<div id="api-info-block">
599<div class="api-level">
600  
601  
602  
603
604</div>
605</div>
606
607<div id="jd-header">
608  package
609  <h1>com.google.android.gms.auth</h1>
610</div><!-- end header -->
611
612<div id="naMessage"></div>
613
614<div id="jd-content" class="api apilevel-">
615
616
617  <div class="jd-descr">
618    Contains classes for authenticating Google accounts.
619
620  </div>
621
622
623
624
625
626  
627
628
629  
630    <h2>Classes</h2>
631    <div class="jd-sumtable">
632    
633  <table class="jd-sumtable-expando">
634        <tr class="alt-color api apilevel-" >
635              <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html">GoogleAuthUtil</a></td>
636              <td class="jd-descrcol" width="100%">GoogleAuthUtil provides static utility methods to acquire and invalidate
637 authentication tokens.&nbsp;</td>
638          </tr>
639  </table>
640    </div>
641  
642
643
644  
645
646
647  
648    <h2>Exceptions</h2>
649    <div class="jd-sumtable">
650    
651  <table class="jd-sumtable-expando">
652        <tr class="alt-color api apilevel-" >
653              <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/GoogleAuthException.html">GoogleAuthException</a></td>
654              <td class="jd-descrcol" width="100%">GoogleAuthExceptions signal Google authentication errors.&nbsp;</td>
655          </tr>
656        <tr class=" api apilevel-" >
657              <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html">GooglePlayServicesAvailabilityException</a></td>
658              <td class="jd-descrcol" width="100%">GooglePlayServicesAvailabilityExceptions are special instances of
659 <code><a href="/reference/com/google/android/gms/auth/UserRecoverableAuthException.html">UserRecoverableAuthException</a></code>s which are thrown when the expected Google Play services app
660 is not available for some reason.&nbsp;</td>
661          </tr>
662        <tr class="alt-color api apilevel-" >
663              <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/UserRecoverableAuthException.html">UserRecoverableAuthException</a></td>
664              <td class="jd-descrcol" width="100%">UserRecoverableAuthExceptions signal Google authentication errors that can be recovered with user
665 action, such as a user login.&nbsp;</td>
666          </tr>
667        <tr class=" api apilevel-" >
668              <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html">UserRecoverableNotifiedException</a></td>
669              <td class="jd-descrcol" width="100%">UserRecoverableNotifiedException signals that there was a Google authentication error which can
670 be recovered with user action and has been handled by publishing a notification for the user
671 to act on.&nbsp;</td>
672          </tr>
673  </table>
674    </div>
675  
676
677
678  
679
680
681
682<div id="footer" class="wrap" >
683        
684
685  <div id="copyright">
686    
687  Except as noted, this content is licensed under <a
688  href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. 
689  For details and restrictions, see the <a href="/license.html">
690  Content License</a>.
691  </div>
692  <div id="build_info">
693    
694<script src="/timestamp.js" type="text/javascript"></script>
695<script>document.write(BUILD_TIMESTAMP)</script>
696
697  </div>
698
699
700  <div id="footerlinks">
701    
702  <p>
703    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
704    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
705    <a href="/support.html">Support</a>
706  </p>
707  </div>
708
709</div> <!-- end footer -->
710
711</div><!-- end jd-content -->
712</div><!-- doc-content -->
713
714</div> <!-- end body-content --> 
715
716
717
718
719
720
721</body>
722</html>
723