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. </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. </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. </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. </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. </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> | 704 <a href="/legal.html">Legal</a> | 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