<!DOCTYPE html>







































































































<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<title>com.google.android.gcm.server | Android Developers</title>

<!-- STYLESHEETS -->
<link rel="stylesheet"
href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
<link href="/assets/css/default.css" rel="stylesheet" type="text/css">



<!-- JAVASCRIPT -->
<script src="//www.google.com/jsapi" type="text/javascript"></script>
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
  var toRoot = "/";
  
  var devsite = false;
  
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>

<script src="/gms_navtree_data.js" type="text/javascript"></script>
<script src="/gcm_navtree_data.js" type="text/javascript"></script>


<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-5831155-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>
</head>

<body class="gc-documentation google
  develop">
  <div id="doc-api-level" class="" style="display:none"></div>
  <a name="top"></a>

  
    <!-- Header -->
    <div id="header">
        <div class="wrap" id="header-wrap">
          <div class="col-3 logo">
          <a href="/index.html">
            <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
          </a>
          <div class="btn-quicknav" id="btn-quicknav">
          	<a href="#" class="arrow-inactive">Quicknav</a>
			      <a href="#" class="arrow-active">Quicknav</a>
          </div>
          </div>
            <ul class="nav-x col-9">
                <li class="design">
                  <a href="/design/index.html" 
                  zh-TW-lang="設計"
                  zh-CN-lang="设计"
                  ru-lang="Проектирование"
                  ko-lang="디자인"
                  ja-lang="設計"
                  es-lang="Diseñar"               
                  >Design</a></li>
                <li class="develop"><a href="/develop/index.html" class="selected"
                  zh-TW-lang="開發"
                  zh-CN-lang="开发"
                  ru-lang="Разработка"
                  ko-lang="개발"
                  ja-lang="開発"
                  es-lang="Desarrollar"               
                  >Develop</a></li>
                <li class="distribute last"><a href="/distribute/index.html" 
                  zh-TW-lang="發佈"
                  zh-CN-lang="分发"
                  ru-lang="Распространение"
                  ko-lang="배포"
                  ja-lang="配布"
                  es-lang="Distribuir"               
                  >Distribute</a></li>
            </ul>
            
            <!-- New Search -->
            <div class="menu-container">
            <div class="moremenu">
    <div id="more-btn"></div>
  </div>
  <div class="morehover" id="moremenu">
    <div class="top"></div>
    <div class="mid">
      <div class="header">Links</div>
      <ul>
        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
        <li><a href="/about/index.html">About Android</a></li>
      </ul>
      <div class="header">Android Sites</div>
      <ul>
        <li><a href="http://www.android.com">Android.com</a></li>
        <li class="active"><a>Android Developers</a></li>
        <li><a href="http://source.android.com">Android Open Source Project</a></li>
      </ul>
      

      
      
        <div class="header">Language</div>
          <div id="language" class="locales">
            <select name="language" onChange="changeLangPref(this.value, true)">
                <option value="en">English</option>
                <option value="es">Español</option>
                <option value="ja">日本語</option>
                <option value="ko">한국어</option>
                <option value="ru">Русский</option>
                <option value="zh-CN">中文 (中国)</option>
                <option value="zh-TW">中文 (台灣)</option>
            </select>
          </div>
        <script type="text/javascript">
          <!--
          loadLangPref();
            //-->
        </script>
      
      


      <br class="clearfix" />
    </div>
    <div class="bottom"></div>
  </div>
  <div class="search" id="search-container">
    <div class="search-inner">
      <div id="search-btn"></div>
      <div class="left"></div>
      <form onsubmit="return submit_search()">
        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
onkeydown="return search_changed(event, true, '/')" 
onkeyup="return search_changed(event, false, '/')" />
      </form>
      <div class="right"></div>
        <a class="close hide">close</a>
        <div class="left"></div>
        <div class="right"></div>
    </div>
  </div>
  <div id="search_filtered_wrapper">
    <div id="search_filtered_div" class="no-display">
        <ul id="search_filtered">
        </ul>
    </div>
  </div>
  
  </div>
  <!-- /New Search>
          
          
          <!-- Expanded quicknav -->
           <div id="quicknav" class="col-9">
                <ul>
                    <li class="design">
                      <ul>
                        <li><a href="/design/index.html">Get Started</a></li>
                        <li><a href="/design/style/index.html">Style</a></li>
                        <li><a href="/design/patterns/index.html">Patterns</a></li>
                        <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
                        <li><a href="/design/downloads/index.html">Downloads</a></li>
                        <li><a href="/design/videos/index.html">Videos</a></li>
                      </ul>
                    </li>
                    <li class="develop">
                      <ul>
                        <li><a href="/training/index.html"
                          zh-TW-lang="訓練課程"
                          zh-CN-lang="培训"
                          ru-lang="Курсы"
                          ko-lang="교육"
                          ja-lang="トレーニング"
                          es-lang="Capacitación"               
                          >Training</a></li>
                        <li><a href="/guide/components/index.html"
                          zh-TW-lang="API 指南"
                          zh-CN-lang="API 指南"
                          ru-lang="Руководства по API"
                          ko-lang="API 가이드"
                          ja-lang="API ガイド"
                          es-lang="Guías de la API"               
                          >API Guides</a></li>
                        <li><a href="/reference/packages.html"
                          zh-TW-lang="參考資源"
                          zh-CN-lang="参考"
                          ru-lang="Справочник"
                          ko-lang="참조문서"
                          ja-lang="リファレンス"
                          es-lang="Referencia"               
                          >Reference</a></li>
                        <li><a href="/tools/index.html"
                          zh-TW-lang="相關工具"
                          zh-CN-lang="工具"
                          ru-lang="Инструменты"
                          ko-lang="도구"
                          ja-lang="ツール"
                          es-lang="Herramientas"               
                          >Tools</a>
                          <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
                        </li>
                        <li><a href="/google/index.html">Google Services</a>
                        </li>
                      </ul>
                    </li>
                    <li class="distribute last">
                      <ul>
                        <li><a href="/distribute/index.html">Google Play</a></li>
                        <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
                        <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
                        <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
                        <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
                        <li><a href="/distribute/open.html">Open Distribution</a></li>
                      </ul>
                    </li>
                </ul>
          </div>
          <!-- /Expanded quicknav -->
        </div>
    </div>
    <!-- /Header -->
    
    
  <div id="searchResults" class="wrap" style="display:none;">
          <h2 id="searchTitle">Results</h2>
          <div id="leftSearchControl" class="search-control">Loading...</div>
  </div>
    
    
    

    <!-- Secondary x-nav -->
    <div id="nav-x">
        <div class="wrap">
            <ul class="nav-x col-9 develop" style="width:100%">
                <li><a href="/training/index.html" 
                  zh-TW-lang="訓練課程"
                  zh-CN-lang="培训"
                  ru-lang="Курсы"
                  ko-lang="교육"
                  ja-lang="トレーニング"
                  es-lang="Capacitación"               
                  >Training</a></li>
                <li><a href="/guide/components/index.html" 
                  zh-TW-lang="API 指南"
                  zh-CN-lang="API 指南"
                  ru-lang="Руководства по API"
                  ko-lang="API 가이드"
                  ja-lang="API ガイド"
                  es-lang="Guías de la API"               
                  >API Guides</a></li>
                <li><a href="/reference/packages.html" 
                  zh-TW-lang="參考資源"
                  zh-CN-lang="参考"
                  ru-lang="Справочник"
                  ko-lang="참조문서"
                  ja-lang="リファレンス"
                  es-lang="Referencia"               
                  >Reference</a></li>
                <li><a href="/tools/index.html" 
                  zh-TW-lang="相關工具"
                  zh-CN-lang="工具"
                  ru-lang="Инструменты"
                  ko-lang="도구"
                  ja-lang="ツール"
                  es-lang="Herramientas"
                  >Tools</a></li>
                <li><a href="/google/index.html" class="selected"
                  >Google Services</a>
                </li>
            </ul>
        </div>
        
    </div>
    <!-- /Sendondary x-nav -->

  
  

  
  <div class="wrap clearfix" id="body-content">
    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
      <div id="devdoc-nav" class="scroll-pane">
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>



<ul id="nav">
  <li class="nav-section">
    <div class="nav-section-header empty"><a href="/google/index.html">
        <span class="en">Overview</span>
      </a></div>
  </li>

  <li class="nav-section">
    <div class="nav-section-header"><a href="/google/play-services/index.html">
      <span class="en">Google Play Services</span></a>
    </div>
    <ul>
      <li><a href="/google/play-services/setup.html">
          <span class="en">Setup</span></a>
      </li>

      <li><a href="/google/play-services/auth.html">
          <span class="en">Authentication</span></a>
      </li>

      <li><a href="/google/play-services/plus.html">
          <span class="en">Google+</span></a>
      </li>

      <li><a href="/google/play-services/maps.html">
          <span class="en">Google Maps</span></a>
      </li>

      <li id="gms-tree-list" class="nav-section">
        <div class="nav-section-header">
          <a href="/reference/gms-packages.html">
            <span class="en">Reference</span>
          </a>
        <div>
      </li>

    </ul>
  </li>


  <li class="nav-section">
    <div class="nav-section-header"><a href="/google/play/billing/index.html">
      <span class="en">Google Play In-app Billing</span></a>
    </div>
    <ul>
      <li><a href="/google/play/billing/billing_overview.html">
              <span class="en">Overview</span></a>
      </li>
      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
              <span class="en">Version 3 API</span></a></div>
              <ul>
              <li><a href="/google/play/billing/billing_integrate.html">
              <span class="en">Implementing the API</span></a></li>
              <li><a href="/google/play/billing/billing_reference.html">
              <span class="en">Reference</span></a></li>
              </ul>
      </li>
      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
              <span class="en">Version 2 API</span></a></div>
              <ul>
              <li><a href="/google/play/billing/v2/billing_integrate.html">
              <span class="en">Implementing the API</span></a></li>
              <li><a href="/google/play/billing/v2/billing_subscriptions.html">
              <span class="en">Subscriptions</span></a></li>
              <li><a href="/google/play/billing/v2/billing_reference.html">
              <span class="en">Reference</span></a></li>
              </ul>
      </li>
      <li><a href="/google/play/billing/billing_best_practices.html">
              <span class="en">Security and Design</span></a>
      </li>
      <li><a href="/google/play/billing/billing_testing.html">
              <span class="en">Testing In-app Billing</span></a>
      </li>
      <li><a href="/google/play/billing/billing_admin.html">
              <span class="en">Administering In-app Billing</span></a>
      </li>
      <li><a href="/google/play/billing/versions.html">
              <span class="en">Version Notes</span></a>
      </li>
    </ul>
  </li>

  <li class="nav-section">
    <div class="nav-section-header"><a href="/google/play/dist.html">
      <span class="en">Google Play Distribution</span></a>
    </div>
    <ul>
      <li><a href="/google/play/filters.html">
          <span class="en">Filters on Google Play</span></a>
      </li>

      <li><a href="/google/play/publishing/multiple-apks.html">
          <span class="en">Multiple APK Support</span></a>
      </li>
      <li><a href="/google/play/expansion-files.html">
          <span class="en">APK Expansion Files</span></a>
      </li>
      <li class="nav-section">
        <div class="nav-section-header"><a href="/google/play/licensing/index.html">
          <span class="en">Application Licensing</span></a>
        </div>
        <ul>
          <li><a href="/google/play/licensing/overview.html">
              <span class="en">Licensing Overview</span></a>
          </li>
          <li><a href="/google/play/licensing/setting-up.html">
              <span class="en">Setting Up for Licensing</span></a>
          </li>
          <li><a href="/google/play/licensing/adding-licensing.html">
              <span class="en">Adding Licensing to Your App</span></a>
          </li>
          <li><a href="/google/play/licensing/licensing-reference.html">
              <span class="en">Licensing Reference</span></a>
          </li>
        </ul>
      </li>
    </ul>
  </li>

  <li class="nav-section">
      <div class="nav-section-header"><a href="/google/gcm/index.html">
        <span class="en">Google Cloud Messaging</span></a>
      </div>
      <ul>
        <li><a href="/google/gcm/gs.html">
            <span class="en">Getting Started</span></a>
        </li>
        <li><a href="/google/gcm/gcm.html">
            <span class="en">Architectural Overview</span></a>
        </li>
        <li><a href="/google/gcm/demo.html">
            <span class="en">Demo App Tutorial</span></a>
        </li>
        <li><a href="/google/gcm/adv.html">
            <span class="en">Advanced Topics</span></a>
        </li>
        <li><a href="/google/gcm/c2dm.html">
            <span class="en">Migration</span></a>
        </li>
        <li id="gcm-tree-list" class="nav-section">
          <div class="nav-section-header">
            <a href="/reference/gcm-packages.html">
              <span class="en">Reference</span>
            </a>
          <div>
        </li>
      </ul>
  </li>


  <li class="nav-section">
    <div class="nav-section-header"><a href="/google/backup/index.html">
      Android Backup Service</a>
    </div>
    <ul>
      <li><a href="/google/backup/signup.html">
          Register</a>
      </li>
    </ul>
  </li>

</ul>

<script type="text/javascript">
<!--
    buildToggleLists();
    changeNavLang(getLangPref());
//-->
</script>


        

      </div>
      <script type="text/javascript">
       showGoogleRefTree();
    
      </script>

    </div> <!-- end side-nav -->
    <script>
      $(document).ready(function() {
        scrollIntoView("devdoc-nav");
        });
    </script>


     



<div class="col-12" id="doc-col">

<div id="api-info-block">
<div class="api-level">
  
  
  

</div>
</div>

<div id="jd-header">
  package
  <h1>com.google.android.gcm.server</h1>
</div><!-- end header -->

<div id="naMessage"></div>

<div id="jd-content" class="api apilevel-">






  


  
    <h2>Classes</h2>
    <div class="jd-sumtable">
    
  <table class="jd-sumtable-expando">
        <tr class="alt-color api apilevel-" >
              <td class="jd-linkcol"><a href="/reference/com/google/android/gcm/server/Constants.html">Constants</a></td>
              <td class="jd-descrcol" width="100%">Constants used on GCM service communication.&nbsp;</td>
          </tr>
        <tr class=" api apilevel-" >
              <td class="jd-linkcol"><a href="/reference/com/google/android/gcm/server/Message.html">Message</a></td>
              <td class="jd-descrcol" width="100%">GCM message.&nbsp;</td>
          </tr>
        <tr class="alt-color api apilevel-" >
              <td class="jd-linkcol"><a href="/reference/com/google/android/gcm/server/Message.Builder.html">Message.Builder</a></td>
              <td class="jd-descrcol" width="100%">&nbsp;</td>
          </tr>
        <tr class=" api apilevel-" >
              <td class="jd-linkcol"><a href="/reference/com/google/android/gcm/server/MulticastResult.html">MulticastResult</a></td>
              <td class="jd-descrcol" width="100%">Result of a GCM multicast message request .&nbsp;</td>
          </tr>
        <tr class="alt-color api apilevel-" >
              <td class="jd-linkcol"><a href="/reference/com/google/android/gcm/server/Result.html">Result</a></td>
              <td class="jd-descrcol" width="100%">Result of a GCM message request that returned HTTP status code 200.&nbsp;</td>
          </tr>
        <tr class=" api apilevel-" >
              <td class="jd-linkcol"><a href="/reference/com/google/android/gcm/server/Sender.html">Sender</a></td>
              <td class="jd-descrcol" width="100%">Helper class to send messages to the GCM service using an API Key.&nbsp;</td>
          </tr>
  </table>
    </div>
  


  


  
    <h2>Exceptions</h2>
    <div class="jd-sumtable">
    
  <table class="jd-sumtable-expando">
        <tr class="alt-color api apilevel-" >
              <td class="jd-linkcol"><a href="/reference/com/google/android/gcm/server/InvalidRequestException.html">InvalidRequestException</a></td>
              <td class="jd-descrcol" width="100%">Exception thrown when GCM returned an error due to an invalid request.&nbsp;</td>
          </tr>
  </table>
    </div>
  


  



<div id="footer" class="wrap" >
        

  <div id="copyright">
    
  Except as noted, this content is licensed under <a
  href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. 
  For details and restrictions, see the <a href="/license.html">
  Content License</a>.
  </div>
  <div id="build_info">
    
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>

  </div>


  <div id="footerlinks">
    
  <p>
    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
    <a href="/support.html">Support</a>
  </p>
  </div>

</div> <!-- end footer -->

</div><!-- end jd-content -->
</div><!-- doc-content -->

</div> <!-- end body-content --> 






</body>
</html>
