2016-04-13 9 views
0

私はアンドロイドのプッシュ通知に取り組んでいます。すべてうまくいきましたが、突然gcm id(gcmトークン)がヌルとして返されています。私はプロジェクトを登録して、hereという新しいプロジェクトIDを取得する必要があります。私はthis は以下GCM登録が非同期イベントであるといないことを実現するために、サンプルコード、空白登録IDが返されている場所を正確にわからないが、その重要ではありませんokhttp post request not successful

@Override 
    protected void onHandleIntent(Intent intent) { 
    sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); 
    InstanceID instanceID = InstanceID.getInstance(this); 
    senderId = getResources().getString(R.string.google_app_id); 

     try { 
     token = instanceID.getToken(senderId,GoogleCloudMessaging.INSTANCE_ID_SCOPE,null); 
     Log.d("register_Token: ", token); 

     sendRegistrationToServer(token); 

    } catch (IOException e) { 
     e.printStackTrace(); 
     sharedPrefs.edit().putBoolean(QuickstartPreferences, false).apply(); 
    } 



} 

答えて

0

イムで試してみました 私を教育してくださいすぐに起こるしたがって、GCMRegistrar.getRegistrationId(this);の直後に電話をかけると、登録IDは空の文字列にしかなりません。お使いのデバイスは、あなたがあなたのGCMBaseIntentServiceで、次のコールバックを処理する必要がGCMサーバに登録した後に適切に登録IDを取得するために

protected void onRegistered(Context context, String registrationId)

あなたが登録IDを取得する場所ですアプリケーションサーバーに登録する必要があります。

@Override 
protected void onRegistered(Context context, String registrationId) { 
Log.i(TAG, "Device registered: regId = " + registrationId); 
displayMessage(context, getString(R.string.gcm_registered, 
registrationId)); 
ServerUtilities.register(context, registrationId); 
} 
関連する問題