Java 雷吉德总是空的
我现在正在我的应用程序中实现GCM。我用教程作为起点 问题是我的Java 雷吉德总是空的,java,android,android-c2dm,Java,Android,Android C2dm,我现在正在我的应用程序中实现GCM。我用教程作为起点 问题是我的regId总是null: GCMRegistrar.checkDevice(this); GCMRegistrar.checkManifest(this); final String regId = GCMRegistrar.getRegistrationId(this); if (regId.equals("")) { GCMRegistrar.register(this, "627xxxx78"); } else {
regId
总是null
:
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals(""))
{
GCMRegistrar.register(this, "627xxxx78");
}
else
{
if (GCMRegistrar.isRegisteredOnServer(this))
{
Log.i(TAG, "Already registered regId : " + regId );
}
else
{
final Context context = this;
mRegisterTask = new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
boolean registered =
ServerUtilities.register(context, regId);
if (!registered)
{
GCMRegistrar.unregister(context);
}
return null;
}
@Override
protected void onPostExecute(Void result) {
mRegisterTask = null;
}
};
mRegisterTask.execute(null, null, null);
}
}
gcmregistar.checkDevice(这个);
GCMRegistar.检查清单(本);
最终字符串regId=gcmregistar.getRegistrationId(this);
if(regId.equals(“”)
{
GCMRegistrar.登记册(本文件为“627xx78”);
}
其他的
{
if(GCMRegistrar.isRegisteredOnServer(本))
{
Log.i(标签“已注册注册注册的注册ID:+regId”);
}
其他的
{
最终上下文=此;
mRegisterTask=newasynctask(){
@凌驾
受保护的Void doInBackground(Void…参数){
布尔注册=
register(上下文,regId);
如果(!已注册)
{
GCMRegistar.unregister(上下文);
}
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
mRegisterTask=null;
}
};
mRegisterTask.execute(null,null,null);
}
}
在上面的代码中,ServerUtilities.register
从未被调用,因为gcmregistar.getRegistrationId(this)
;始终返回空字符串
有什么想法吗?我也有同样的问题。在应用程序清单文件中添加以下内容:
package=“yourApplicationPackage”
必须在应用程序包中保留此“yourApplicationPackage.gcMinentService”
yourApplicationPackage.gcMinentService代码如下所示
public class GCMIntentService extends GCMBaseIntentService {
@Override
protected void onError(Context arg0, String arg1) {
// TODO Auto-generated method stub
}
@Override
protected void onMessage(Context context, Intent intent) {
// TODO Auto-generated method stub
}
@Override
protected void onRegistered(Context context, String registrationId) {
// TODO Auto-generated method stub
Log.i(TAG, "Device registered: regId = " + registrationId);
GcmServer.register(context, registrationId);
}
@Override
protected void onUnregistered(Context arg0, String arg1) {
// TODO Auto-generated method stub
}
我也有同样的问题。在应用程序清单文件中添加以下内容:
package=“yourApplicationPackage”
必须在应用程序包中保留此“yourApplicationPackage.gcMinentService”
yourApplicationPackage.gcMinentService代码如下所示
public class GCMIntentService extends GCMBaseIntentService {
@Override
protected void onError(Context arg0, String arg1) {
// TODO Auto-generated method stub
}
@Override
protected void onMessage(Context context, Intent intent) {
// TODO Auto-generated method stub
}
@Override
protected void onRegistered(Context context, String registrationId) {
// TODO Auto-generated method stub
Log.i(TAG, "Device registered: regId = " + registrationId);
GcmServer.register(context, registrationId);
}
@Override
protected void onUnregistered(Context arg0, String arg1) {
// TODO Auto-generated method stub
}
确保您的模拟器或设备已使用Google帐户登录。我遇到了同样的问题。我只是简单地登录了这个设备的谷歌账号,哈哈,我得到了注册码 确保您的模拟器或设备已使用Google帐户登录。我遇到了同样的问题。我只是简单地登录了这个设备的谷歌账号,哈哈,我得到了注册码 您是否可以发布您的清单文件您在
gcminentservice
中的注册请求得到了什么?您是否可以发布您的清单文件您在gcminentservice
中的注册请求得到了什么?