2014-06-18 94 views
1

我使用以下代码获取Android设备中的设备令牌。但是,我第一次尝试时得到了空值。设备令牌第一次返回null

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

这里是我的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

问题是,它需要时间来生成设备ID如果你试图导航之前,它返回null,你可以请张贴你的gcm类.. –

+0

@George:编辑 –

回答

1

我不知道天气的戈纳锻炼或不反正试一试....,让我知道 在您的GCM类检查这天气存在或不存在如果不将它放在这里

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(); 
    } 

这里保存登记后REGID在一个应用程序优先尝试检索偏好值,而不是取字符串regId。

相关问题