2013-06-09 19 views
8

Google's GCM exampleにつきましては非常に慎重に対応していますが、依然として不満を感じています。ここで答えを見つけられなかったので、将来の参考のために文書化すると思った。Google Cloud Messagingの登録メソッドがIOException(MAIN_THREAD)で失敗する

私はマニフェストが適切な権限(上記の例の文字に続く)で正しく設定されていることを確かめましたが、このコードは常に "MAIN_THREAD"の説明でIOExceptionを引き起こしました。

String regid = ""; 
try { 
    GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(getApplicationContext()); 
    String sender_id = getResources().getString(R.string.GCM_sender_id); 
    regid = gcm.register(sender_id); 
    Log.d(TAG, "Device registered, registration id=" + regid); 
} 
catch (IOException ex) { 
    Log.e(TAG, "Device registration failed", ex); 
} 

私はこのステップを実行することで問題を見つけようとしていましたので、もちろんこのコードをメインスレッドで実行しました。振り返って答えは明らかですが、私はそれを下に記入します。

答えて

12

ドラムロール...メインスレッドの登録メソッドを呼び出すことはできません。振り返ってみると明らかな、おそらく私は同じくらい吸う他人がある

+4

gcm.register(SENDER_ID)(毎日あまりが!)。 doInBackgroundでアプリケーションを登録してIOExceptionをスローできない –

1

コールAsyncTaskのレジスタ法(doInBackGround)

関連する問題