title: Invalidate all gcm tokens
body: <p>My app uses gcm. Each time user logs in, new gcm token is registered and sent to my 3rd party server. Each time user logs out, gcm token is unregistered. This woks without any problems.</p>
  
  <p>The problem is that when it comes to testing, tester can uninstall the app without loging out, and then install it back again and log into another account. Then he'll recieve two gcms from two different account. This means he'll recieve private gcms for account hes not currently loged into. This can even happen with live users sometimes.</p>
  
  <p>GCM documentation states that gcm tokens can expire <em>sometimes</em> if the application is uninstalled. In practice, this never happens.<br>
  <a href="http://developer.android.com/google/gcm/gcm.html" rel="noreferrer">http://developer.android.com/google/gcm/gcm.html</a>    </p>
  
  <p>GCM documentation also states that you can unregister GCM tokens by executing</p>
  
  <pre><code>Intent unregIntent = new Intent("com.google.android.c2dm.intent.UNREGISTER");
  unregIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0));
  startService(unregIntent);
  </code></pre>
  
  <p>But this method doesn't seem to work if you try it after reinstall. I do recieve callback which tells me that token is unregistered, but gcm token still works ok.</p>
  
  <p>My question is: can you ensure that there are no valid gcm tokens for your application? I'd really like to unregister all existing tokens during application first start, or at least reset them from the phone settings. </p>