我试图创建的推送功能的基本架构是
1)我会得到电话号码并将其存储在我的数据库中
2)只有当服务器上发生某些事情时,我才会尝试创建推送消息
所以我不需要应用程序尝试调用服务器向它发送消息的部分。我想知道我应该在 Service 类中扩展什么以及我需要实现其中的哪些方法。
另外,我是否能够在不使用服务器的情况下获取设备 ID 并将该信息发送到我的服务器?
我正在使用 Google 云消息传递。
谢谢!
我试图创建的推送功能的基本架构是
1)我会得到电话号码并将其存储在我的数据库中
2)只有当服务器上发生某些事情时,我才会尝试创建推送消息
所以我不需要应用程序尝试调用服务器向它发送消息的部分。我想知道我应该在 Service 类中扩展什么以及我需要实现其中的哪些方法。
另外,我是否能够在不使用服务器的情况下获取设备 ID 并将该信息发送到我的服务器?
我正在使用 Google 云消息传递。
谢谢!
好的,要获取手机的注册 ID,您需要在活动中执行以下操作:
import com.google.android.gcm.GCMRegistrar;
private final static String SENDER_ID = "0001234567" // API Key, see comments;
public class myActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState)
{
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals(""))
{
GCMRegistrar.register(this, SENDER_ID);
Log.i(TAG,"registered a new ID");
}
else
{
Log.i(TAG,"Already Registered");
}
您的 google reg 将包含在 regId 中
你将在你的清单中需要这个:
<receiver
android:name="com.google.android.gcm.GCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="my.namespace" />
</intent-filter>
</receiver>
其中 my.namespace 将等于您的包名称
您可以按照本教程.. 它使用新的 GooglecloudMessaging API。是的,您应该扩展IntentService ,因为现在不推荐使用其他的。