我想要创建的推送功能的基本架构是
1)我会得到手机ID并将其存储在我的数据库中
2)只有当服务器上发生了某些事情时,我才会尝试创建推送消息
所以我不需要应用程序尝试调用服务器向其发送消息的部分。我想知道我应该在Service类中扩展什么以及我需要实现哪些方法。
此外,我是否能够获取设备ID并将该信息发送到我的服务器而不使用服务器?
我正在使用Google云消息传递。
谢谢!
答案 0 :(得分:1)
好的,要获取手机的注册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
中你需要在你的Manifest中使用它:
<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将等于您的包名称
答案 1 :(得分:0)
您可以关注此tutorial ..它使用新的GooglecloudMessaging API。是的,你应该扩展 IntentService ,因为现在不推荐使用其他的。