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<html> 88<head> 89 90 91<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 92<meta name="viewport" content="width=device-width" /> 93 94<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> 95<title>RoomStatusUpdateListener | Android Developers</title> 96 97<!-- STYLESHEETS --> 98<link rel="stylesheet" 99href="//fonts.googleapis.com/css?family=Roboto+Condensed"> 100<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold" 101 title="roboto"> 102<link href="/assets/css/default.css?v=2" rel="stylesheet" type="text/css"> 103 104 105 106<!-- JAVASCRIPT --> 107<script src="//www.google.com/jsapi" type="text/javascript"></script> 108<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script> 109<script type="text/javascript"> 110 var toRoot = "/"; 111 var metaTags = []; 112 var devsite = false; 113</script> 114<script src="/assets/js/docs.js?v=2" type="text/javascript"></script> 115 116<script> 117 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 118 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 119 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 120 })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 121 122 ga('create', 'UA-5831155-1', 'android.com'); 123 ga('create', 'UA-49880327-2', 'android.com', {'name': 'universal'}); // New tracker); 124 ga('send', 'pageview'); 125 ga('universal.send', 'pageview'); // Send page view for new tracker. 126</script> 127 128</head> 129 130<body class="gc-documentation google 131 develop" itemscope itemtype="http://schema.org/Article"> 132 <div id="doc-api-level" class="" style="display:none"></div> 133 <a name="top"></a> 134 135 136<a name="top"></a> 137 138 <!-- Header --> 139 <div id="header-wrapper"> 140 <div id="header"> 141 <div class="wrap" id="header-wrap"> 142 <div class="col-3 logo"> 143 <a href="/index.html"> 144 <img src="/assets/images/dac_logo.png" 145 srcset="/assets/images/dac_logo@2x.png 2x" 146 width="123" height="25" alt="Android Developers" /> 147 </a> 148 <div class="btn-quicknav" id="btn-quicknav"> 149 <a href="#" class="arrow-inactive">Quicknav</a> 150 <a href="#" class="arrow-active">Quicknav</a> 151 </div> 152 </div> 153 <ul class="nav-x col-9"> 154 <li class="design"> 155 <a href="/design/index.html" 156 zh-tw-lang="設計" 157 zh-cn-lang="设计" 158 ru-lang="Проектирование" 159 ko-lang="디자인" 160 ja-lang="設計" 161 es-lang="Diseñar" 162 >Design</a></li> 163 <li class="develop"><a href="/develop/index.html" 164 zh-tw-lang="開發" 165 zh-cn-lang="开发" 166 ru-lang="Разработка" 167 ko-lang="개발" 168 ja-lang="開発" 169 es-lang="Desarrollar" 170 >Develop</a></li> 171 <li class="distribute last"><a href="/distribute/index.html" 172 zh-tw-lang="發佈" 173 zh-cn-lang="分发" 174 ru-lang="Распространение" 175 ko-lang="배포" 176 ja-lang="配布" 177 es-lang="Distribuir" 178 >Distribute</a></li> 179 </ul> 180 181 182 183 184<div class="menu-container"> 185 <div class="moremenu"> 186 <div id="more-btn"></div> 187 </div> 188 <div class="morehover" id="moremenu"> 189 <div class="top"></div> 190 <div class="mid"> 191 <div class="header">Links</div> 192 <ul> 193 <li><a href="https://play.google.com/apps/publish/" target="_googleplay">Google Play Developer Console</a></li> 194 <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li> 195 <li><a href="/about/index.html">About Android</a></li> 196 </ul> 197 <div class="header">Android Sites</div> 198 <ul> 199 <li><a href="http://www.android.com">Android.com</a></li> 200 <li class="active"><a>Android Developers</a></li> 201 <li><a href="http://source.android.com">Android Open Source Project</a></li> 202 </ul> 203 204 205 206 <div class="header">Language</div> 207 <div id="language" class="locales"> 208 <select name="language" onChange="changeLangPref(this.value, true)"> 209 <option value="en">English</option> 210 <option value="es">Español</option> 211 <option value="ja">日本語</option> 212 <option value="ko">한국어</option> 213 <option value="ru">Русский</option> 214 <option value="zh-cn">中文 (中国)</option> 215 <option value="zh-tw">中文 (台灣)</option> 216 </select> 217 </div> 218 <script type="text/javascript"> 219 <!-- 220 loadLangPref(); 221 //--> 222 </script> 223 224 225 <br class="clearfix" /> 226 </div><!-- end 'mid' --> 227 <div class="bottom"></div> 228 </div><!-- end 'moremenu' --> 229 230 <div class="search" id="search-container"> 231 <div class="search-inner"> 232 <div id="search-btn"></div> 233 <div class="left"></div> 234 <form onsubmit="return submit_search()"> 235 <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q" 236 onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)" 237 onkeydown="return search_changed(event, true, '/')" 238 onkeyup="return search_changed(event, false, '/')" /> 239 </form> 240 <div class="right"></div> 241 <a class="close hide">close</a> 242 <div class="left"></div> 243 <div class="right"></div> 244 </div><!-- end search-inner --> 245 </div><!-- end search-container --> 246 247 <div class="search_filtered_wrapper reference"> 248 <div class="suggest-card reference no-display"> 249 <ul class="search_filtered"> 250 </ul> 251 </div> 252 </div> 253 254 <div class="search_filtered_wrapper docs"> 255 <div class="suggest-card dummy no-display"> </div> 256 <div class="suggest-card develop no-display"> 257 <ul class="search_filtered"> 258 </ul> 259 <div class="child-card guides no-display"> 260 </div> 261 <div class="child-card training no-display"> 262 </div> 263 <div class="child-card samples no-display"> 264 </div> 265 </div> 266 <div class="suggest-card design no-display"> 267 <ul class="search_filtered"> 268 </ul> 269 </div> 270 <div class="suggest-card distribute no-display"> 271 <ul class="search_filtered"> 272 </ul> 273 </div> 274 </div> 275</div><!-- end menu-container (search and menu widget) --> 276 277 278 279 <!-- Expanded quicknav --> 280 <div id="quicknav" class="col-13"> 281 <ul> 282 <li class="about"> 283 <ul> 284 <li><a href="/about/index.html">About</a></li> 285 <li><a href="/wear/index.html">Wear</a></li> 286 <li><a href="/tv/index.html">TV</a></li> 287 <li><a href="/auto/index.html">Auto</a></li> 288 </ul> 289 </li> 290 <li class="design"> 291 <ul> 292 <li><a href="/design/index.html">Get Started</a></li> 293 <li><a href="/design/devices.html">Devices</a></li> 294 <li><a href="/design/style/index.html">Style</a></li> 295 <li><a href="/design/patterns/index.html">Patterns</a></li> 296 <li><a href="/design/building-blocks/index.html">Building Blocks</a></li> 297 <li><a href="/design/downloads/index.html">Downloads</a></li> 298 <li><a href="/design/videos/index.html">Videos</a></li> 299 </ul> 300 </li> 301 <li class="develop"> 302 <ul> 303 <li><a href="/training/index.html" 304 zh-tw-lang="訓練課程" 305 zh-cn-lang="培训" 306 ru-lang="Курсы" 307 ko-lang="교육" 308 ja-lang="トレーニング" 309 es-lang="Capacitación" 310 >Training</a></li> 311 <li><a href="/guide/index.html" 312 zh-tw-lang="API 指南" 313 zh-cn-lang="API 指南" 314 ru-lang="Руководства по API" 315 ko-lang="API 가이드" 316 ja-lang="API ガイド" 317 es-lang="Guías de la API" 318 >API Guides</a></li> 319 <li><a href="/reference/packages.html" 320 zh-tw-lang="參考資源" 321 zh-cn-lang="参考" 322 ru-lang="Справочник" 323 ko-lang="참조문서" 324 ja-lang="リファレンス" 325 es-lang="Referencia" 326 >Reference</a></li> 327 <li><a href="/sdk/index.html" 328 zh-tw-lang="相關工具" 329 zh-cn-lang="工具" 330 ru-lang="Инструменты" 331 ko-lang="도구" 332 ja-lang="ツール" 333 es-lang="Herramientas" 334 >Tools</a> 335 </li> 336 <li><a href="/google/index.html">Google Services</a> 337 </li> 338 339 <li><a href="/samples/index.html">Samples</a> 340 </li> 341 342 </ul> 343 </li> 344 <li class="distribute last"> 345 <ul> 346 <li><a href="/distribute/googleplay/index.html">Google Play</a></li> 347 <li><a href="/distribute/essentials/index.html">Essentials</a></li> 348 <li><a href="/distribute/users/index.html">Get Users</a></li> 349 <li><a href="/distribute/engage/index.html">Engage & Retain</a></li> 350 <li><a href="/distribute/monetize/index.html">Monetize</a></li> 351 <li><a href="/distribute/tools/index.html">Tools & Reference</a></li> 352 <li><a href="/distribute/stories/index.html">Developer Stories</a></li> 353 </ul> 354 </li> 355 </ul> 356 </div><!-- /Expanded quicknav --> 357 </div><!-- end header-wrap.wrap --> 358 </div><!-- end header --> 359 360 361 <!-- Secondary x-nav --> 362 <div id="nav-x"> 363 <div class="wrap"> 364 <ul class="nav-x col-9 develop" style="width:100%"> 365 <li class="training"><a href="/training/index.html" 366 zh-tw-lang="訓練課程" 367 zh-cn-lang="培训" 368 ru-lang="Курсы" 369 ko-lang="교육" 370 ja-lang="トレーニング" 371 es-lang="Capacitación" 372 >Training</a></li> 373 <li class="guide"><a href="/guide/index.html" 374 zh-tw-lang="API 指南" 375 zh-cn-lang="API 指南" 376 ru-lang="Руководства по API" 377 ko-lang="API 가이드" 378 ja-lang="API ガイド" 379 es-lang="Guías de la API" 380 >API Guides</a></li> 381 <li class="reference"><a href="/reference/packages.html" 382 zh-tw-lang="參考資源" 383 zh-cn-lang="参考" 384 ru-lang="Справочник" 385 ko-lang="참조문서" 386 ja-lang="リファレンス" 387 es-lang="Referencia" 388 >Reference</a></li> 389 <li class="tools"><a href="/sdk/index.html" 390 zh-tw-lang="相關工具" 391 zh-cn-lang="工具" 392 ru-lang="Инструменты" 393 ko-lang="도구" 394 ja-lang="ツール" 395 es-lang="Herramientas" 396 >Tools</a></li> 397 <li class="google"><a href="/google/index.html" 398 >Google Services</a> 399 </li> 400 401 <li class="samples"><a href="/samples/index.html" 402 >Samples</a> 403 </li> 404 405 </ul> 406 </div> 407 </div> 408 <!-- /Sendondary x-nav DEVELOP --> 409 410 411 412 <div id="searchResults" class="wrap" style="display:none;"> 413 <h2 id="searchTitle">Results</h2> 414 <div id="leftSearchControl" class="search-control">Loading...</div> 415 </div> 416 </div> <!--end header-wrapper --> 417 418 <div id="sticky-header"> 419 <div> 420 <a class="logo" href="#top"></a> 421 <a class="top" href="#top"></a> 422 <ul class="breadcrumb"> 423 424 <li class="current">RoomStatusUpdateListener</li> 425 </ul> 426 </div> 427 </div> 428 429 430 431 432 433 434 <div class="wrap clearfix" id="body-content"> 435 <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement"> 436 <div id="devdoc-nav" class="scroll-pane"> 437 438 439 440<ul id="nav"> 441 442 <li class="nav-section"> 443 <div class="nav-section-header empty"><a href="/google/index.html"> 444 <span class="en">Overview</span> 445 </a></div> 446 </li> 447 448 <li class="nav-section"> 449 <div class="nav-section-header empty"><a href="/google/play-services/games.html"> 450 <span class="en">Games</span> 451 </a></div> 452 </li> 453 <li class="nav-section"> 454 <div class="nav-section-header empty"><a href="/google/play-services/location.html"> 455 <span class="en">Location</span> 456 </a></div> 457 </li> 458 <li class="nav-section"> 459 <div class="nav-section-header empty"><a href="/google/play-services/plus.html"> 460 <span class="en">Google+</span> 461 </a></div> 462 </li> 463 <li class="nav-section"> 464 <div class="nav-section-header empty"><a href="/google/play-services/maps.html"> 465 <span class="en">Maps</span> 466 </a></div> 467 </li> 468 <li class="nav-section"> 469 <div class="nav-section-header empty"><a href="/google/play-services/drive.html"> 470 <span class="en">Drive</span> 471 </a></div> 472 </li> 473 <li class="nav-section"> 474 <div class="nav-section-header empty"><a href="/google/play-services/cast.html"> 475 <span class="en">Cast</span> 476 </a></div> 477 </li> 478 <li class="nav-section"> 479 <div class="nav-section-header"><a href="/google/play-services/ads.html"> 480 <span class="en">Ads</span></a> 481 </div> 482 <ul> 483 <li><a href="/google/play-services/id.html"> 484 <span class="en">Advertising ID</span></a> 485 </li> 486 </ul> 487 </li> 488 <li class="nav-section"> 489 <div class="nav-section-header empty"><a href="/google/play-services/wallet.html"> 490 <span class="en">Wallet</span> 491 </a></div> 492 </li> 493 494 495 <li class="nav-section"> 496 <div class="nav-section-header"><a href="/google/play-services/index.html"> 497 <span class="en">Google Play Services</span></a> 498 </div> 499 <ul> 500 <li><a href="/google/play-services/setup.html"> 501 <span class="en">Setting Up Google Play Services</span></a> 502 </li> 503 <li class="nav-section"> 504 <div class="nav-section-header"><a href="/google/auth/api-client.html"> 505 <span class="en">Accessing Google APIs</span></a> 506 </div> 507 <ul> 508 <li> 509 <a href="/google/auth/http-auth.html"> 510 <span class="en">Authorizing with Google for REST APIs</span> 511 </a> 512 </li> 513 </ul> 514 </li> 515 <li id="gms-tree-list" class="nav-section"> 516 <div class="nav-section-header"> 517 <a href="/reference/gms-packages.html"> 518 <span class="en">Reference</span> 519 </a> 520 <div> 521 </li> 522 </ul> 523 </li> 524 525 526 <li class="nav-section"> 527 <div class="nav-section-header"><a href="/google/play/billing/index.html"> 528 <span class="en">Google Play In-app Billing</span></a> 529 </div> 530 <ul> 531 <li><a href="/google/play/billing/billing_overview.html"> 532 <span class="en">Overview</span></a> 533 </li> 534 <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html"> 535 <span class="en">Version 3 API</span></a></div> 536 <ul> 537 <li><a href="/google/play/billing/billing_integrate.html"> 538 <span class="en">Implementing the API</span></a></li> 539 <li><a href="/google/play/billing/billing_reference.html"> 540 <span class="en">Reference</span></a></li> 541 </ul> 542 </li> 543 <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html"> 544 <span class="en">Version 2 API</span></a></div> 545 <ul> 546 <li><a href="/google/play/billing/v2/billing_integrate.html"> 547 <span class="en">Implementing the API</span></a></li> 548 <li><a href="/google/play/billing/v2/billing_subscriptions.html"> 549 <span class="en">Subscriptions</span></a></li> 550 <li><a href="/google/play/billing/v2/billing_reference.html"> 551 <span class="en">Reference</span></a></li> 552 </ul> 553 </li> 554 <li><a href="/google/play/billing/billing_subscriptions.html"> 555 <span class="en">Subscriptions</span></a> 556 </li> 557 <li><a href="/google/play/billing/billing_best_practices.html"> 558 <span class="en">Security and Design</span></a> 559 </li> 560 <li><a href="/google/play/billing/billing_testing.html"> 561 <span class="en">Testing In-app Billing</span></a> 562 </li> 563 <li><a href="/google/play/billing/billing_admin.html"> 564 <span class="en">Administering In-app Billing</span></a> 565 </li> 566 <li><a href="/google/play/billing/versions.html"> 567 <span class="en">Version Notes</span></a> 568 </li> 569 </ul> 570 </li> 571 572 573 574 <li class="nav-section"> 575 <div class="nav-section-header"><a href="/google/gcm/index.html"> 576 <span class="en">Google Cloud Messaging</span></a> 577 </div> 578 <ul> 579 <li><a href="/google/gcm/gcm.html"> 580 <span class="en">Overview</span></a> 581 </li> 582 <li><a href="/google/gcm/gs.html"> 583 <span class="en">Getting Started</span></a> 584 </li> 585 <li><a href="/google/gcm/client.html"> 586 <span class="en">Implementing GCM Client</span></a> 587 </li> 588 <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html"> 589 <span class="en">Implementing GCM Server</span></a></div> 590 <ul> 591 <li><a href="/google/gcm/ccs.html"> 592 <span class="en">CCS (XMPP)</span></a></li> 593 <li><a href="/google/gcm/http.html"> 594 <span class="en">HTTP</span></a></li> 595 </ul> 596 </li> 597 <li><a href="/google/gcm/notifications.html"> 598 <span class="en">User Notifications</span></a> 599 </li> 600 <li><a href="/google/gcm/adv.html"> 601 <span class="en">Advanced Topics</span></a> 602 </li> 603 <li><a href="/google/gcm/c2dm.html"> 604 <span class="en">Migration</span></a> 605 </li> 606 <li id="gcm-tree-list" class="nav-section"> 607 <div class="nav-section-header"> 608 <a href="/reference/gcm-packages.html"> 609 <span class="en">Reference</span> 610 </a> 611 <div> 612 </li> 613 </ul> 614 </li> 615 616 <li class="nav-section"> 617 <div class="nav-section-header empty"><a href="/google/gcs/index.html"> 618 <span class="en">Google Cloud Save</span></a> 619 </div> 620 </li> 621 622 <li class="nav-section"> 623 <div class="nav-section-header"><a href="/google/play/dist.html"> 624 <span class="en">Google Play Distribution</span></a> 625 </div> 626 <ul> 627 <li><a href="/google/play/filters.html"> 628 <span class="en">Filters on Google Play</span></a> 629 </li> 630 <li><a href="/google/play/billing/gp-purchase-status-api.html"> 631 <span class="en">Google Play Developer API</span></a> 632 </li> 633 <li><a href="/google/play/publishing/multiple-apks.html"> 634 <span class="en">Multiple APK Support</span></a> 635 </li> 636 <li><a href="/google/play/expansion-files.html"> 637 <span class="en">APK Expansion Files</span></a> 638 </li> 639 <li class="nav-section"> 640 <div class="nav-section-header"><a href="/google/play/licensing/index.html"> 641 <span class="en">Application Licensing</span></a> 642 </div> 643 <ul> 644 <li><a href="/google/play/licensing/overview.html"> 645 <span class="en">Licensing Overview</span></a> 646 </li> 647 <li><a href="/google/play/licensing/setting-up.html"> 648 <span class="en">Setting Up for Licensing</span></a> 649 </li> 650 <li><a href="/google/play/licensing/adding-licensing.html"> 651 <span class="en">Adding Licensing to Your App</span></a> 652 </li> 653 <li><a href="/google/play/licensing/licensing-reference.html"> 654 <span class="en">Licensing Reference</span></a> 655 </li> 656 </ul> 657 </li> 658 659 <li class="nav-section"> 660 <div class="nav-section-header"><a href="/google/backup/index.html"> 661 Android Backup Service</a> 662 </div> 663 <ul> 664 <li><a href="/google/backup/signup.html"> 665 Register</a> 666 </li> 667 </ul> 668 </li> 669 670 </ul> 671 672</li> 673 674 675 676</ul> 677 678<script type="text/javascript"> 679<!-- 680 buildToggleLists(); 681 changeNavLang(getLangPref()); 682//--> 683</script> 684 685 686 687 688 </div> 689 <script type="text/javascript"> 690 showGoogleRefTree(); 691 692 </script> 693 </div> <!-- end side-nav --> 694 <script> 695 $(document).ready(function() { 696 scrollIntoView("devdoc-nav"); 697 }); 698 </script> 699 700 701 702 703 704 705<div class="col-12" id="doc-col"> 706 707<div id="api-info-block"> 708 709 710 711 712<div class="sum-details-links"> 713 714</div><!-- end sum-details-links --> 715<div class="api-level"> 716 717 718 719 720</div> 721</div><!-- end api-info-block --> 722 723 724<!-- ======== START OF CLASS DATA ======== --> 725 726<div id="jd-header"> 727 public 728 729 730 731 interface 732<h1 itemprop="name">RoomStatusUpdateListener</h1> 733 734 735 736 737 738 739 740 741</div><!-- end header --> 742 743<div id="naMessage"></div> 744 745<div id="jd-content" class="api apilevel-"> 746<table class="jd-inheritance-table"> 747 748 749 <tr> 750 751 <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.realtime.RoomStatusUpdateListener</td> 752 </tr> 753 754 755</table> 756 757 758 759 760 761 762 763<div class="jd-descr"> 764 765 766<h2>Class Overview</h2> 767<p itemprop="articleBody">Listener invoked when the status of a room, status of its participants or connection status of 768 the participants has changed. 769</p> 770 771 772 773 774 775</div><!-- jd-descr --> 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792<div class="jd-descr"> 793 794 795<h2>Summary</h2> 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823<!-- ========== METHOD SUMMARY =========== --> 824<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr> 825 826 827 828 829 <tr class="alt-color api apilevel-" > 830 <td class="jd-typecol"><nobr> 831 abstract 832 833 834 835 836 void</nobr> 837 </td> 838 <td class="jd-linkcol" width="100%"><nobr> 839 <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onConnectedToRoom(com.google.android.gms.games.multiplayer.realtime.Room)">onConnectedToRoom</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room)</nobr> 840 841 <div class="jd-descrdiv">Called when the client is connected to the connected set in a room.</div> 842 843 </td></tr> 844 845 846 847 <tr class=" api apilevel-" > 848 <td class="jd-typecol"><nobr> 849 abstract 850 851 852 853 854 void</nobr> 855 </td> 856 <td class="jd-linkcol" width="100%"><nobr> 857 <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onDisconnectedFromRoom(com.google.android.gms.games.multiplayer.realtime.Room)">onDisconnectedFromRoom</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room)</nobr> 858 859 <div class="jd-descrdiv">Called when the client is disconnected from the connected set in a room.</div> 860 861 </td></tr> 862 863 864 865 <tr class="alt-color api apilevel-" > 866 <td class="jd-typecol"><nobr> 867 abstract 868 869 870 871 872 void</nobr> 873 </td> 874 <td class="jd-linkcol" width="100%"><nobr> 875 <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onP2PConnected(java.lang.String)">onP2PConnected</a></span>(String participantId)</nobr> 876 877 <div class="jd-descrdiv">Called when the client is successfully connected to a peer participant.</div> 878 879 </td></tr> 880 881 882 883 <tr class=" api apilevel-" > 884 <td class="jd-typecol"><nobr> 885 abstract 886 887 888 889 890 void</nobr> 891 </td> 892 <td class="jd-linkcol" width="100%"><nobr> 893 <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onP2PDisconnected(java.lang.String)">onP2PDisconnected</a></span>(String participantId)</nobr> 894 895 <div class="jd-descrdiv">Called when client gets disconnected from a peer participant.</div> 896 897 </td></tr> 898 899 900 901 <tr class="alt-color api apilevel-" > 902 <td class="jd-typecol"><nobr> 903 abstract 904 905 906 907 908 void</nobr> 909 </td> 910 <td class="jd-linkcol" width="100%"><nobr> 911 <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeerDeclined(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeerDeclined</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List<String> participantIds)</nobr> 912 913 <div class="jd-descrdiv">Called when one or more peers decline the invitation to a room.</div> 914 915 </td></tr> 916 917 918 919 <tr class=" api apilevel-" > 920 <td class="jd-typecol"><nobr> 921 abstract 922 923 924 925 926 void</nobr> 927 </td> 928 <td class="jd-linkcol" width="100%"><nobr> 929 <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeerInvitedToRoom(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeerInvitedToRoom</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List<String> participantIds)</nobr> 930 931 <div class="jd-descrdiv">Called when one or more peers are invited to a room.</div> 932 933 </td></tr> 934 935 936 937 <tr class="alt-color api apilevel-" > 938 <td class="jd-typecol"><nobr> 939 abstract 940 941 942 943 944 void</nobr> 945 </td> 946 <td class="jd-linkcol" width="100%"><nobr> 947 <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeerJoined(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeerJoined</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List<String> participantIds)</nobr> 948 949 <div class="jd-descrdiv">Called when one or more peer participants join a room.</div> 950 951 </td></tr> 952 953 954 955 <tr class=" api apilevel-" > 956 <td class="jd-typecol"><nobr> 957 abstract 958 959 960 961 962 void</nobr> 963 </td> 964 <td class="jd-linkcol" width="100%"><nobr> 965 <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeerLeft(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeerLeft</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List<String> participantIds)</nobr> 966 967 <div class="jd-descrdiv">Called when one or more peer participant leave a room.</div> 968 969 </td></tr> 970 971 972 973 <tr class="alt-color api apilevel-" > 974 <td class="jd-typecol"><nobr> 975 abstract 976 977 978 979 980 void</nobr> 981 </td> 982 <td class="jd-linkcol" width="100%"><nobr> 983 <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeersConnected(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeersConnected</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List<String> participantIds)</nobr> 984 985 <div class="jd-descrdiv">Called when one or more peer participants are connected to a room.</div> 986 987 </td></tr> 988 989 990 991 <tr class=" api apilevel-" > 992 <td class="jd-typecol"><nobr> 993 abstract 994 995 996 997 998 void</nobr> 999 </td> 1000 <td class="jd-linkcol" width="100%"><nobr> 1001 <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeersDisconnected(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeersDisconnected</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List<String> participantIds)</nobr> 1002 1003 <div class="jd-descrdiv">Called when one or more peer participants are disconnected from a room.</div> 1004 1005 </td></tr> 1006 1007 1008 1009 <tr class="alt-color api apilevel-" > 1010 <td class="jd-typecol"><nobr> 1011 abstract 1012 1013 1014 1015 1016 void</nobr> 1017 </td> 1018 <td class="jd-linkcol" width="100%"><nobr> 1019 <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onRoomAutoMatching(com.google.android.gms.games.multiplayer.realtime.Room)">onRoomAutoMatching</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room)</nobr> 1020 1021 <div class="jd-descrdiv">Called when the server has started the process of auto-matching.</div> 1022 1023 </td></tr> 1024 1025 1026 1027 <tr class=" api apilevel-" > 1028 <td class="jd-typecol"><nobr> 1029 abstract 1030 1031 1032 1033 1034 void</nobr> 1035 </td> 1036 <td class="jd-linkcol" width="100%"><nobr> 1037 <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onRoomConnecting(com.google.android.gms.games.multiplayer.realtime.Room)">onRoomConnecting</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room)</nobr> 1038 1039 <div class="jd-descrdiv">Called when one or more participants have joined the room and have started 1040 the process of establishing peer connections.</div> 1041 1042 </td></tr> 1043 1044 1045 1046</table> 1047 1048 1049 1050 1051 1052 1053 1054</div><!-- jd-descr (summary) --> 1055 1056<!-- Details --> 1057 1058 1059 1060 1061 1062 1063 1064 1065<!-- XML Attributes --> 1066 1067 1068<!-- Enum Values --> 1069 1070 1071<!-- Constants --> 1072 1073 1074<!-- Fields --> 1075 1076 1077<!-- Public ctors --> 1078 1079 1080 1081<!-- ========= CONSTRUCTOR DETAIL ======== --> 1082<!-- Protected ctors --> 1083 1084 1085 1086<!-- ========= METHOD DETAIL ======== --> 1087<!-- Public methdos --> 1088 1089<h2>Public Methods</h2> 1090 1091 1092 1093<A NAME="onConnectedToRoom(com.google.android.gms.games.multiplayer.realtime.Room)"></A> 1094 1095<div class="jd-details api apilevel-"> 1096 <h4 class="jd-details-title"> 1097 <span class="normal"> 1098 public 1099 1100 1101 abstract 1102 1103 void 1104 </span> 1105 <span class="sympad">onConnectedToRoom</span> 1106 <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room)</span> 1107 </h4> 1108 <div class="api-level"> 1109 <div></div> 1110 1111 1112 1113 </div> 1114 <div class="jd-details-descr"> 1115 1116 <div class="jd-tagdata jd-tagdescr"><p>Called when the client is connected to the connected set in a room.</p></div> 1117 <div class="jd-tagdata"> 1118 <h5 class="jd-tagtitle">Parameters</h5> 1119 <table class="jd-tagtable"> 1120 <tr> 1121 <th>room</td> 1122 <td>The room data with the status of a room and its participants. The room can be 1123 <code>null</code> if it could not be loaded successfully. 1124</td> 1125 </tr> 1126 </table> 1127 </div> 1128 1129 </div> 1130</div> 1131 1132 1133<A NAME="onDisconnectedFromRoom(com.google.android.gms.games.multiplayer.realtime.Room)"></A> 1134 1135<div class="jd-details api apilevel-"> 1136 <h4 class="jd-details-title"> 1137 <span class="normal"> 1138 public 1139 1140 1141 abstract 1142 1143 void 1144 </span> 1145 <span class="sympad">onDisconnectedFromRoom</span> 1146 <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room)</span> 1147 </h4> 1148 <div class="api-level"> 1149 <div></div> 1150 1151 1152 1153 </div> 1154 <div class="jd-details-descr"> 1155 1156 <div class="jd-tagdata jd-tagdescr"><p>Called when the client is disconnected from the connected set in a room.</p></div> 1157 <div class="jd-tagdata"> 1158 <h5 class="jd-tagtitle">Parameters</h5> 1159 <table class="jd-tagtable"> 1160 <tr> 1161 <th>room</td> 1162 <td>The room data with the status of a room and its participants. The room can be 1163 <code>null</code> if it could not be loaded successfully. 1164</td> 1165 </tr> 1166 </table> 1167 </div> 1168 1169 </div> 1170</div> 1171 1172 1173<A NAME="onP2PConnected(java.lang.String)"></A> 1174 1175<div class="jd-details api apilevel-"> 1176 <h4 class="jd-details-title"> 1177 <span class="normal"> 1178 public 1179 1180 1181 abstract 1182 1183 void 1184 </span> 1185 <span class="sympad">onP2PConnected</span> 1186 <span class="normal">(String participantId)</span> 1187 </h4> 1188 <div class="api-level"> 1189 <div></div> 1190 1191 1192 1193 </div> 1194 <div class="jd-details-descr"> 1195 1196 <div class="jd-tagdata jd-tagdescr"><p>Called when the client is successfully connected to a peer participant.</p></div> 1197 <div class="jd-tagdata"> 1198 <h5 class="jd-tagtitle">Parameters</h5> 1199 <table class="jd-tagtable"> 1200 <tr> 1201 <th>participantId</td> 1202 <td>ID of the peer participant who was successfully connected. 1203</td> 1204 </tr> 1205 </table> 1206 </div> 1207 1208 </div> 1209</div> 1210 1211 1212<A NAME="onP2PDisconnected(java.lang.String)"></A> 1213 1214<div class="jd-details api apilevel-"> 1215 <h4 class="jd-details-title"> 1216 <span class="normal"> 1217 public 1218 1219 1220 abstract 1221 1222 void 1223 </span> 1224 <span class="sympad">onP2PDisconnected</span> 1225 <span class="normal">(String participantId)</span> 1226 </h4> 1227 <div class="api-level"> 1228 <div></div> 1229 1230 1231 1232 </div> 1233 <div class="jd-details-descr"> 1234 1235 <div class="jd-tagdata jd-tagdescr"><p>Called when client gets disconnected from a peer participant.</p></div> 1236 <div class="jd-tagdata"> 1237 <h5 class="jd-tagtitle">Parameters</h5> 1238 <table class="jd-tagtable"> 1239 <tr> 1240 <th>participantId</td> 1241 <td>ID of the peer participant who was disconnected. 1242</td> 1243 </tr> 1244 </table> 1245 </div> 1246 1247 </div> 1248</div> 1249 1250 1251<A NAME="onPeerDeclined(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)"></A> 1252 1253<div class="jd-details api apilevel-"> 1254 <h4 class="jd-details-title"> 1255 <span class="normal"> 1256 public 1257 1258 1259 abstract 1260 1261 void 1262 </span> 1263 <span class="sympad">onPeerDeclined</span> 1264 <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List<String> participantIds)</span> 1265 </h4> 1266 <div class="api-level"> 1267 <div></div> 1268 1269 1270 1271 </div> 1272 <div class="jd-details-descr"> 1273 1274 <div class="jd-tagdata jd-tagdescr"><p>Called when one or more peers decline the invitation to a room.</p></div> 1275 <div class="jd-tagdata"> 1276 <h5 class="jd-tagtitle">Parameters</h5> 1277 <table class="jd-tagtable"> 1278 <tr> 1279 <th>room</td> 1280 <td>The room data with the status of a room and its participants. The room can be 1281 <code>null</code> if it could not be loaded successfully.</td> 1282 </tr> 1283 <tr> 1284 <th>participantIds</td> 1285 <td>IDs of the peers invited to a room. 1286</td> 1287 </tr> 1288 </table> 1289 </div> 1290 1291 </div> 1292</div> 1293 1294 1295<A NAME="onPeerInvitedToRoom(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)"></A> 1296 1297<div class="jd-details api apilevel-"> 1298 <h4 class="jd-details-title"> 1299 <span class="normal"> 1300 public 1301 1302 1303 abstract 1304 1305 void 1306 </span> 1307 <span class="sympad">onPeerInvitedToRoom</span> 1308 <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List<String> participantIds)</span> 1309 </h4> 1310 <div class="api-level"> 1311 <div></div> 1312 1313 1314 1315 </div> 1316 <div class="jd-details-descr"> 1317 1318 <div class="jd-tagdata jd-tagdescr"><p>Called when one or more peers are invited to a room.</p></div> 1319 <div class="jd-tagdata"> 1320 <h5 class="jd-tagtitle">Parameters</h5> 1321 <table class="jd-tagtable"> 1322 <tr> 1323 <th>room</td> 1324 <td>The room data with the status of a room and its participants. The room can be 1325 <code>null</code> if it could not be loaded successfully.</td> 1326 </tr> 1327 <tr> 1328 <th>participantIds</td> 1329 <td>IDs of the peers invited to a room. 1330</td> 1331 </tr> 1332 </table> 1333 </div> 1334 1335 </div> 1336</div> 1337 1338 1339<A NAME="onPeerJoined(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)"></A> 1340 1341<div class="jd-details api apilevel-"> 1342 <h4 class="jd-details-title"> 1343 <span class="normal"> 1344 public 1345 1346 1347 abstract 1348 1349 void 1350 </span> 1351 <span class="sympad">onPeerJoined</span> 1352 <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List<String> participantIds)</span> 1353 </h4> 1354 <div class="api-level"> 1355 <div></div> 1356 1357 1358 1359 </div> 1360 <div class="jd-details-descr"> 1361 1362 <div class="jd-tagdata jd-tagdescr"><p>Called when one or more peer participants join a room.</p></div> 1363 <div class="jd-tagdata"> 1364 <h5 class="jd-tagtitle">Parameters</h5> 1365 <table class="jd-tagtable"> 1366 <tr> 1367 <th>room</td> 1368 <td>The room data with the status of a room and its participants. The room can be 1369 <code>null</code> if it could not be loaded successfully.</td> 1370 </tr> 1371 <tr> 1372 <th>participantIds</td> 1373 <td>IDs of peer participants who joined a room. 1374</td> 1375 </tr> 1376 </table> 1377 </div> 1378 1379 </div> 1380</div> 1381 1382 1383<A NAME="onPeerLeft(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)"></A> 1384 1385<div class="jd-details api apilevel-"> 1386 <h4 class="jd-details-title"> 1387 <span class="normal"> 1388 public 1389 1390 1391 abstract 1392 1393 void 1394 </span> 1395 <span class="sympad">onPeerLeft</span> 1396 <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List<String> participantIds)</span> 1397 </h4> 1398 <div class="api-level"> 1399 <div></div> 1400 1401 1402 1403 </div> 1404 <div class="jd-details-descr"> 1405 1406 <div class="jd-tagdata jd-tagdescr"><p>Called when one or more peer participant leave a room.</p></div> 1407 <div class="jd-tagdata"> 1408 <h5 class="jd-tagtitle">Parameters</h5> 1409 <table class="jd-tagtable"> 1410 <tr> 1411 <th>room</td> 1412 <td>The room data with the status of a room and its participants. The room can be 1413 <code>null</code> if it could not be loaded successfully.</td> 1414 </tr> 1415 <tr> 1416 <th>participantIds</td> 1417 <td>IDs of peer participants who left the room. 1418</td> 1419 </tr> 1420 </table> 1421 </div> 1422 1423 </div> 1424</div> 1425 1426 1427<A NAME="onPeersConnected(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)"></A> 1428 1429<div class="jd-details api apilevel-"> 1430 <h4 class="jd-details-title"> 1431 <span class="normal"> 1432 public 1433 1434 1435 abstract 1436 1437 void 1438 </span> 1439 <span class="sympad">onPeersConnected</span> 1440 <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List<String> participantIds)</span> 1441 </h4> 1442 <div class="api-level"> 1443 <div></div> 1444 1445 1446 1447 </div> 1448 <div class="jd-details-descr"> 1449 1450 <div class="jd-tagdata jd-tagdescr"><p>Called when one or more peer participants are connected to a room.</p></div> 1451 <div class="jd-tagdata"> 1452 <h5 class="jd-tagtitle">Parameters</h5> 1453 <table class="jd-tagtable"> 1454 <tr> 1455 <th>room</td> 1456 <td>The room data with the status of a room and its participants. The room can be 1457 <code>null</code> if it could not be loaded successfully.</td> 1458 </tr> 1459 <tr> 1460 <th>participantIds</td> 1461 <td>IDs of peer participants who were connected. 1462</td> 1463 </tr> 1464 </table> 1465 </div> 1466 1467 </div> 1468</div> 1469 1470 1471<A NAME="onPeersDisconnected(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)"></A> 1472 1473<div class="jd-details api apilevel-"> 1474 <h4 class="jd-details-title"> 1475 <span class="normal"> 1476 public 1477 1478 1479 abstract 1480 1481 void 1482 </span> 1483 <span class="sympad">onPeersDisconnected</span> 1484 <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List<String> participantIds)</span> 1485 </h4> 1486 <div class="api-level"> 1487 <div></div> 1488 1489 1490 1491 </div> 1492 <div class="jd-details-descr"> 1493 1494 <div class="jd-tagdata jd-tagdescr"><p>Called when one or more peer participants are disconnected from a room.</p></div> 1495 <div class="jd-tagdata"> 1496 <h5 class="jd-tagtitle">Parameters</h5> 1497 <table class="jd-tagtable"> 1498 <tr> 1499 <th>room</td> 1500 <td>The room data with the status of a room and its participants. The room can be 1501 <code>null</code> if it could not be loaded successfully.</td> 1502 </tr> 1503 <tr> 1504 <th>participantIds</td> 1505 <td>IDs of peer participants who were disconnected. 1506</td> 1507 </tr> 1508 </table> 1509 </div> 1510 1511 </div> 1512</div> 1513 1514 1515<A NAME="onRoomAutoMatching(com.google.android.gms.games.multiplayer.realtime.Room)"></A> 1516 1517<div class="jd-details api apilevel-"> 1518 <h4 class="jd-details-title"> 1519 <span class="normal"> 1520 public 1521 1522 1523 abstract 1524 1525 void 1526 </span> 1527 <span class="sympad">onRoomAutoMatching</span> 1528 <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room)</span> 1529 </h4> 1530 <div class="api-level"> 1531 <div></div> 1532 1533 1534 1535 </div> 1536 <div class="jd-details-descr"> 1537 1538 <div class="jd-tagdata jd-tagdescr"><p>Called when the server has started the process of auto-matching. Any invited participants 1539 must have joined and fully connected to each other before this will occur.</p></div> 1540 <div class="jd-tagdata"> 1541 <h5 class="jd-tagtitle">Parameters</h5> 1542 <table class="jd-tagtable"> 1543 <tr> 1544 <th>room</td> 1545 <td>The room data with the status of a room and its participants. The room can be 1546 <code>null</code> if it could not be loaded successfully. 1547</td> 1548 </tr> 1549 </table> 1550 </div> 1551 1552 </div> 1553</div> 1554 1555 1556<A NAME="onRoomConnecting(com.google.android.gms.games.multiplayer.realtime.Room)"></A> 1557 1558<div class="jd-details api apilevel-"> 1559 <h4 class="jd-details-title"> 1560 <span class="normal"> 1561 public 1562 1563 1564 abstract 1565 1566 void 1567 </span> 1568 <span class="sympad">onRoomConnecting</span> 1569 <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room)</span> 1570 </h4> 1571 <div class="api-level"> 1572 <div></div> 1573 1574 1575 1576 </div> 1577 <div class="jd-details-descr"> 1578 1579 <div class="jd-tagdata jd-tagdescr"><p>Called when one or more participants have joined the room and have started 1580 the process of establishing peer connections.</p></div> 1581 <div class="jd-tagdata"> 1582 <h5 class="jd-tagtitle">Parameters</h5> 1583 <table class="jd-tagtable"> 1584 <tr> 1585 <th>room</td> 1586 <td>The room data with the status of a room and its participants. The room can be 1587 <code>null</code> if it could not be loaded successfully. 1588 1589</td> 1590 </tr> 1591 </table> 1592 </div> 1593 1594 </div> 1595</div> 1596 1597 1598 1599 1600 1601<!-- ========= METHOD DETAIL ======== --> 1602 1603 1604 1605<!-- ========= END OF CLASS DATA ========= --> 1606<A NAME="navbar_top"></A> 1607 1608<div id="footer" class="wrap" > 1609 1610 1611 <div id="copyright"> 1612 1613 Except as noted, this content is licensed under <a 1614 href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. 1615 For details and restrictions, see the <a href="/license.html"> 1616 Content License</a>. 1617 </div> 1618 <div id="build_info"> 1619 1620<script src="/timestamp.js" type="text/javascript"></script> 1621<script>document.write(BUILD_TIMESTAMP)</script> 1622 1623 </div> 1624 1625 1626 <div id="footerlinks"> 1627 1628 <p> 1629 <a href="/about/index.html">About Android</a> | 1630 <a href="/legal.html">Legal</a> | 1631 <a href="/support.html">Support</a> 1632 </p> 1633 </div> 1634 1635</div> <!-- end footer --> 1636</div> <!-- jd-content --> 1637 1638</div><!-- end doc-content --> 1639 1640</div> <!-- end body-content --> 1641 1642 1643 1644 1645 1646 1647</body> 1648</html> 1649