2014-06-18 1 views
1

다음 코드를 사용하여 Android 장치에 장치 토큰을 가져 왔습니다. 하지만 첫 번째 시도에 null 값이 표시됩니다. 여기 장치 토큰이 처음으로 null을 반환합니다.

GCMRegistrar.checkDevice(this); 
    GCMRegistrar.checkManifest(this); 
    String regId = GCMRegistrar.getRegistrationId(this); 
    if (regId.equals("")) { 
     GCMRegistrar.register(this, UtilsGcm.GCMSenderId); 
     } 

내가 그 Gona을이 운동 날씨 여부 어쨌든 한번 시도해 .... 나를 당신의 GCM 클래스 검사에서 을 알려 몰라

public class GCMIntentService extends GCMBaseIntentService { 


    public GCMIntentService() { 
     super(UtilsGcm.GCMSenderId); 
    } 

    @Override 
    protected void onError(Context context, String regId) { 
     Log.e("", "error registration id : " + regId); 

    } 

    @Override 
    protected void onMessage(Context context, Intent intent) { 
     handleMessage(context, intent); 
    } 

    @Override 
    protected void onRegistered(Context context, String regId) { 
     System.out.println("on registered" + regId); 
     UtilsGcm.registrationId = regId; 
     handleRegistration(context, regId); 
    } 

    @Override 
    protected void onUnregistered(Context arg0, String arg1) { 

    } 
} 
+0

문제는 null을 반환하기 전에 멀리 이동하려고하면 장치 ID를 생성하는 데 시간이 걸리므로 gcm 클래스도 게시 해주세요. –

+0

@George : edited –

답변

1

를 사용하여 내 GCM 클래스입니다 앱 환경 설정에서 등록 후 REGID 저장이 여기

private void handleRegistration(Context context, String regId) 
    { 
     // TODO Auto-generated method stub 
     Utils.registrationId = regId; 
     SavePreferences("PUSHNOT",regId); 
     Log.e("", "registration id : "+regId); 


     //sendDeviceIdFuction(context,UtilsGcm.registrationId); 


    } 
    private void SavePreferences(String key, String value) 
    { 
     // TODO Auto-generated method stub 
     SharedPreferences sharedPreferences = getSharedPreferences("myPrefs", MODE_PRIVATE); 
     SharedPreferences.Editor editor = sharedPreferences.edit(); 
     editor.putString(key, value); 
     editor.commit(); 
    } 

그것을 배치 할을 복용하는 대신 그 기본 설정 값을 검색하려고하지 않을 경우이 없거나없는 날씨 String regId.

관련 문제