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"> </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 & Retain</a></li> 414 <li><a href="/distribute/monetize/index.html">Monetize</a></li> 415 <li><a href="/distribute/tools/index.html">Tools & 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 | <a href="#pubmethods">Methods</a> 806 807 808 809 810 | <a href="#inhmethods">Inherited Methods</a> 811 812| <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"> ↳</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<?></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> | 2459 <a href="/legal.html">Legal</a> | 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