gpt4 book ai didi

android - 在 C2DM 注册过程中将额外数据传递给 C2DMReceiver?

转载 作者:行者123 更新时间:2023-11-30 04:40:02 26 4
gpt4 key购买 nike

我正在现有的客户端/服务器 Android 应用程序上设置 C2DM。该应用程序已经有一组已建立的类,用于与服务器通信、让用户登录并维护用于服务器的身份验证 token 。

根据文档,我添加了注册 C2DM 的代码,并创建了一个 BroadcastReceiver 来接收响应。在我的 BroadcastReceiver 中,我收到了对包含注册 ID 的 onReceive() 方法的调用。我可以在调试器中看到它并将其记录到控制台。

问题是我现在需要将 ID 发送到我的服务器,但我不能,因为我无权访问我的应用程序的其余部分。 BroadcastReceiver 不是 Intent 或 Context 或我熟悉的任何其他内容。如果我只有用户的身份验证 token ,我可以解决这个问题,但我也无法获得。我尝试将它作为注册 Intent 的附加项传递,但它在途中丢失了。

在 onReceive() 方法中获取 extras 或 application context 的正确方法是什么?

谢谢,弗兰克

最佳答案

这方面有一些很好的资源,取自:

@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
Log.d(TAG, "Got a reply from Google");
if (action.equals(REGISTER_ACTION))
{
handleRegistration(context, intent);
}
else if (action.equals(RECEIVE_ACTION))
{
handleMessage(context, intent);
}
else
{
Log.w(TAG, "Unexpected intent: " + intent);
}
}


private void handleRegistration(Context context, Intent intent)
{
String registrationId = intent.getStringExtra("registration_id");
String error = intent.getStringExtra("error");
String unregistered = intent.getStringExtra("unregistered");
if (error != null)
{
Log.e(TAG, "Registration failed: " + error);
this.getApp(context).disablePush();
}
else if (unregistered != null)
{
Log.d(TAG, "Unregistered: " + unregistered);
context.startService(new Intent(RegistrationService.COMPLETE_UNREGISTER_ACTION));
}
else if (registrationId != null)
{
Log.d(TAG, "Registered with registration ID [" + registrationId + "]");
// Send registrationId to the Application Server in a separate thread.
Intent i = new Intent(RegistrationService.COMPLETE_REGISTER_ACTION);
i.putExtra("regId", registrationId);
context.startService(i);
}
else
{
Log.d(TAG, "Other registration response: " + intent.getExtras());
}
}

有关更多阅读,请参阅 Marakana

关于android - 在 C2DM 注册过程中将额外数据传递给 C2DMReceiver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6145596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com