blob: e2a166ac557264201743fd5d260f18b569b37f2f [file] [log] [blame]
<!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>GCMRegistrar | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
href="http://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="http://www.google.com/jsapi" type="text/javascript"></script>
<script src="/assets/js/global-libraries-combined.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
</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>
</head>
<body class="gc-documentation google
develop" itemscope itemtype="http://schema.org/Article">
<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">Support</div>
<ul>
<li><a href="/support.html">Developer Support</a></li>
</ul> -->
<div class="header">Languages</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">In-app Billing Overview</span></a>
</li>
<li><a href="/google/play/billing/billing_integrate.html">
<span class="en">Implementing In-app Billing</span></a>
</li>
<li><a href="/google/play/billing/billing_subscriptions.html">
<span class="en">Subscriptions</span></a>
</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/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/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 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>
</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>
<script>
$(document).ready(function() {
changeDocLang(getLangPref());
});
</script>
<div class="col-12" id="doc-col">
<div id="api-info-block">
<div class="sum-details-links">
Summary:
<a href="#constants">Constants</a>
&#124; <a href="#pubmethods">Methods</a>
&#124; <a href="#inhmethods">Inherited Methods</a>
&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
</div><!-- end sum-details-links -->
<div class="api-level">
</div>
</div><!-- end api-info-block -->
<!-- ======== START OF CLASS DATA ======== -->
<div id="jd-header">
public
final
class
<h1 itemprop="name">GCMRegistrar</h1>
extends Object<br/>
</div><!-- end header -->
<div id="naMessage"></div>
<div id="jd-content" class="api apilevel-">
<table class="jd-inheritance-table">
<tr>
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
<tr>
<td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
<td colspan="1" class="jd-inheritance-class-cell">com.google.android.gcm.GCMRegistrar</td>
</tr>
</table>
<div class="jd-descr">
<h2>Class Overview</h2>
<p itemprop="articleBody">Utilities for device registration.
<p>
<strong>Note:</strong> this class uses a private <code><a href="/reference/android/content/SharedPreferences.html">SharedPreferences</a></code>
object to keep track of the registration token.
</p>
</div><!-- jd-descr -->
<div class="jd-descr">
<h2>Summary</h2>
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">long</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gcm/GCMRegistrar.html#DEFAULT_ON_SERVER_LIFESPAN_MS">DEFAULT_ON_SERVER_LIFESPAN_MS</a></td>
<td class="jd-descrcol" width="100%">Default lifespan (7 days) of the <code><a href="/reference/com/google/android/gcm/GCMRegistrar.html#isRegisteredOnServer(android.content.Context)">isRegisteredOnServer(Context)</a></code>
flag until it is considered expired.</td>
</tr>
</table>
<!-- ========== METHOD SUMMARY =========== -->
<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
static
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gcm/GCMRegistrar.html#checkDevice(android.content.Context)">checkDevice</a></span>(Context context)</nobr>
<div class="jd-descrdiv">Checks if the device has the proper dependencies installed.</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
static
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gcm/GCMRegistrar.html#checkManifest(android.content.Context)">checkManifest</a></span>(Context context)</nobr>
<div class="jd-descrdiv">Checks that the application manifest is properly configured.</div>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
static
long</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gcm/GCMRegistrar.html#getRegisterOnServerLifespan(android.content.Context)">getRegisterOnServerLifespan</a></span>(Context context)</nobr>
<div class="jd-descrdiv">Gets how long (in milliseconds) the <code><a href="/reference/com/google/android/gcm/GCMRegistrar.html#isRegistered(android.content.Context)">isRegistered(Context)</a></code>
property is valid.</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
static
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gcm/GCMRegistrar.html#getRegistrationId(android.content.Context)">getRegistrationId</a></span>(Context context)</nobr>
<div class="jd-descrdiv">Gets the current registration id for application on GCM service.</div>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
static
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gcm/GCMRegistrar.html#isRegistered(android.content.Context)">isRegistered</a></span>(Context context)</nobr>
<div class="jd-descrdiv">Checks whether the application was successfully registered on GCM
service.</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
static
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gcm/GCMRegistrar.html#isRegisteredOnServer(android.content.Context)">isRegisteredOnServer</a></span>(Context context)</nobr>
<div class="jd-descrdiv">Checks whether the device was successfully registered in the server side,
as set by <code><a href="/reference/com/google/android/gcm/GCMRegistrar.html#setRegisteredOnServer(android.content.Context, boolean)">setRegisteredOnServer(Context, boolean)</a></code>.</div>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
synchronized
static
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gcm/GCMRegistrar.html#onDestroy(android.content.Context)">onDestroy</a></span>(Context context)</nobr>
<div class="jd-descrdiv">Clear internal resources.</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
static
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gcm/GCMRegistrar.html#register(android.content.Context, java.lang.String...)">register</a></span>(Context context, String... senderIds)</nobr>
<div class="jd-descrdiv">Initiate messaging registration for the current application.</div>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
static
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gcm/GCMRegistrar.html#setRegisterOnServerLifespan(android.content.Context, long)">setRegisterOnServerLifespan</a></span>(Context context, long lifespan)</nobr>
<div class="jd-descrdiv">Sets how long (in milliseconds) the <code><a href="/reference/com/google/android/gcm/GCMRegistrar.html#isRegistered(android.content.Context)">isRegistered(Context)</a></code>
flag is valid.</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
static
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gcm/GCMRegistrar.html#setRegisteredOnServer(android.content.Context, boolean)">setRegisteredOnServer</a></span>(Context context, boolean flag)</nobr>
<div class="jd-descrdiv">Sets whether the device was successfully registered in the server side.</div>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
static
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gcm/GCMRegistrar.html#unregister(android.content.Context)">unregister</a></span>(Context context)</nobr>
<div class="jd-descrdiv">Unregister the application.</div>
</td></tr>
</table>
<!-- ========== METHOD SUMMARY =========== -->
<table id="inhmethods" class="jd-sumtable"><tr><th>
<a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
<div style="clear:left;">Inherited Methods</div></th></tr>
<tr class="api apilevel-" >
<td colspan="12">
<a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
><img id="inherited-methods-java.lang.Object-trigger"
src="/assets/images/triangle-closed.png"
class="jd-expando-trigger-img" /></a>
From class
java.lang.Object
<div id="inherited-methods-java.lang.Object">
<div id="inherited-methods-java.lang.Object-list"
class="jd-inheritedlinks">
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
final
Class&lt;?&gt;</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
final
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
final
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
final
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
final
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
final
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
</td></tr>
</table>
</div>
</div>
</td></tr>
</table>
</div><!-- jd-descr (summary) -->
<!-- Details -->
<!-- XML Attributes -->
<!-- Enum Values -->
<!-- Constants -->
<!-- ========= ENUM CONSTANTS DETAIL ======== -->
<h2>Constants</h2>
<A NAME="DEFAULT_ON_SERVER_LIFESPAN_MS"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
long
</span>
DEFAULT_ON_SERVER_LIFESPAN_MS
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Default lifespan (7 days) of the <code><a href="/reference/com/google/android/gcm/GCMRegistrar.html#isRegisteredOnServer(android.content.Context)">isRegisteredOnServer(Context)</a></code>
flag until it is considered expired.
</p></div>
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
604800000
(0x00000000240c8400)
</span>
</div>
</div>
</div>
<!-- Fields -->
<!-- Public ctors -->
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->
<h2>Public Methods</h2>
<A NAME="checkDevice(android.content.Context)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
void
</span>
<span class="sympad">checkDevice</span>
<span class="normal">(Context context)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Checks if the device has the proper dependencies installed.
<p>
This method should be called when the application starts to verify that
the device supports GCM.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>context</td>
<td>application context.</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>UnsupportedOperationException</td>
<td>if the device does not support GCM.
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="checkManifest(android.content.Context)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
void
</span>
<span class="sympad">checkManifest</span>
<span class="normal">(Context context)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Checks that the application manifest is properly configured.
<p>
A proper configuration means:
<ol>
<li>It creates a custom permission called
<code>PACKAGE_NAME.permission.C2D_MESSAGE</code>.
<li>It defines at least one <code><a href="/reference/android/content/BroadcastReceiver.html">BroadcastReceiver</a></code> with category
<code>PACKAGE_NAME</code>.
<li>The <code><a href="/reference/android/content/BroadcastReceiver.html">BroadcastReceiver</a></code>(s) uses the
<code><a href="/reference/com/google/android/gcm/GCMConstants.html#PERMISSION_GCM_INTENTS">com.google.android.gcm.GCMConstants.PERMISSION_GCM_INTENTS</a></code>
permission.
<li>The <code><a href="/reference/android/content/BroadcastReceiver.html">BroadcastReceiver</a></code>(s) handles the 2 GCM intents
(<code><a href="/reference/com/google/android/gcm/GCMConstants.html#INTENT_FROM_GCM_MESSAGE">com.google.android.gcm.GCMConstants.INTENT_FROM_GCM_MESSAGE</a></code>
and
<code><a href="/reference/com/google/android/gcm/GCMConstants.html#INTENT_FROM_GCM_REGISTRATION_CALLBACK">com.google.android.gcm.GCMConstants.INTENT_FROM_GCM_REGISTRATION_CALLBACK</a></code>).
</ol>
...where <code>PACKAGE_NAME</code> is the application package.
<p>
This method should be used during development time to verify that the
manifest is properly set up, but it doesn't need to be called once the
application is deployed to the users' devices.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>context</td>
<td>application context.</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalStateException</td>
<td>if any of the conditions above is not met.
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="getRegisterOnServerLifespan(android.content.Context)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
long
</span>
<span class="sympad">getRegisterOnServerLifespan</span>
<span class="normal">(Context context)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Gets how long (in milliseconds) the <code><a href="/reference/com/google/android/gcm/GCMRegistrar.html#isRegistered(android.content.Context)">isRegistered(Context)</a></code>
property is valid.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>value set by <code><a href="/reference/com/google/android/gcm/GCMRegistrar.html#setRegisteredOnServer(android.content.Context, boolean)">setRegisteredOnServer(Context, boolean)</a></code> or
<code><a href="/reference/com/google/android/gcm/GCMRegistrar.html#DEFAULT_ON_SERVER_LIFESPAN_MS">DEFAULT_ON_SERVER_LIFESPAN_MS</a></code> if not set.
</li></ul>
</div>
</div>
</div>
<A NAME="getRegistrationId(android.content.Context)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
String
</span>
<span class="sympad">getRegistrationId</span>
<span class="normal">(Context context)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Gets the current registration id for application on GCM service.
<p>
If result is empty, the registration has failed.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>registration id, or empty string if the registration is not
complete.
</li></ul>
</div>
</div>
</div>
<A NAME="isRegistered(android.content.Context)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
boolean
</span>
<span class="sympad">isRegistered</span>
<span class="normal">(Context context)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Checks whether the application was successfully registered on GCM
service.
</p></div>
</div>
</div>
<A NAME="isRegisteredOnServer(android.content.Context)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
boolean
</span>
<span class="sympad">isRegisteredOnServer</span>
<span class="normal">(Context context)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Checks whether the device was successfully registered in the server side,
as set by <code><a href="/reference/com/google/android/gcm/GCMRegistrar.html#setRegisteredOnServer(android.content.Context, boolean)">setRegisteredOnServer(Context, boolean)</a></code>.
<p>To avoid the scenario where the device sends the registration to the
server but the server loses it, this flag has an expiration date, which
is <code><a href="/reference/com/google/android/gcm/GCMRegistrar.html#DEFAULT_ON_SERVER_LIFESPAN_MS">DEFAULT_ON_SERVER_LIFESPAN_MS</a></code> by default (but can be changed
by <code><a href="/reference/com/google/android/gcm/GCMRegistrar.html#setRegisterOnServerLifespan(android.content.Context, long)">setRegisterOnServerLifespan(Context, long)</a></code>).
</p></div>
</div>
</div>
<A NAME="onDestroy(android.content.Context)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
synchronized
void
</span>
<span class="sympad">onDestroy</span>
<span class="normal">(Context context)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Clear internal resources.
<p>
This method should be called by the main activity's <code>onDestroy()</code>
method.
</p></div>
</div>
</div>
<A NAME="register(android.content.Context, java.lang.String...)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
void
</span>
<span class="sympad">register</span>
<span class="normal">(Context context, String... senderIds)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Initiate messaging registration for the current application.
<p>
The result will be returned as an
<code><a href="/reference/com/google/android/gcm/GCMConstants.html#INTENT_FROM_GCM_REGISTRATION_CALLBACK">INTENT_FROM_GCM_REGISTRATION_CALLBACK</a></code> intent with
either a <code><a href="/reference/com/google/android/gcm/GCMConstants.html#EXTRA_REGISTRATION_ID">EXTRA_REGISTRATION_ID</a></code> or
<code><a href="/reference/com/google/android/gcm/GCMConstants.html#EXTRA_ERROR">EXTRA_ERROR</a></code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>context</td>
<td>application context.</td>
</tr>
<tr>
<th>senderIds</td>
<td>Google Project ID of the accounts authorized to send
messages to this application.</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalStateException</td>
<td>if device does not have all GCM
dependencies installed.
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="setRegisterOnServerLifespan(android.content.Context, long)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
void
</span>
<span class="sympad">setRegisterOnServerLifespan</span>
<span class="normal">(Context context, long lifespan)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Sets how long (in milliseconds) the <code><a href="/reference/com/google/android/gcm/GCMRegistrar.html#isRegistered(android.content.Context)">isRegistered(Context)</a></code>
flag is valid.
</p></div>
</div>
</div>
<A NAME="setRegisteredOnServer(android.content.Context, boolean)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
void
</span>
<span class="sympad">setRegisteredOnServer</span>
<span class="normal">(Context context, boolean flag)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Sets whether the device was successfully registered in the server side.
</p></div>
</div>
</div>
<A NAME="unregister(android.content.Context)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
void
</span>
<span class="sympad">unregister</span>
<span class="normal">(Context context)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Unregister the application.
<p>
The result will be returned as an
<code><a href="/reference/com/google/android/gcm/GCMConstants.html#INTENT_FROM_GCM_REGISTRATION_CALLBACK">INTENT_FROM_GCM_REGISTRATION_CALLBACK</a></code> intent with an
<code><a href="/reference/com/google/android/gcm/GCMConstants.html#EXTRA_UNREGISTERED">EXTRA_UNREGISTERED</a></code> extra.
</p></div>
</div>
</div>
<!-- ========= METHOD DETAIL ======== -->
<!-- ========= END OF CLASS DATA ========= -->
<A NAME="navbar_top"></A>
<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">
Android &nbsp;r &mdash; 03 Dec 2012 12:15
</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> <!-- jd-content -->
</div><!-- end doc-content -->
</div> <!-- end body-content -->
<!-- Grid - for dev
<script type="text/javascript">
window.gOverride = {
gColor: '#FF0000',
pColor: '#EEEEEE',
gOpacity: 0.10,
pOpacity: 0.40,
pHeight: 16,
pOffset: 2,
gColumns:16,
gEnabled:false,
pEnabled:false
}
</script>
<link href="/assets/js/grid/960.gridder.css" rel="stylesheet" type="text/css">
<script src="/assets/js/grid/960.gridder.js" type="text/javascript"></script>
-->
<script type="text/javascript">
init(); /* initialize android-developer-docs.js */
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-5831155-1");
pageTracker._trackPageview();
</script>
</body>
</html>