Android

时间:2015-12-03 09:28:05

标签: android google-cloud-messaging

我正在制作一个Android应用程序,我打算免费提供试用期30天。 所以我在考虑实施它的策略。 一种常用的策略是拥有一个服务器端服务,当用户第一次安装应用程序时会调用它,并节省应用程序安装在服务器上的时间。每次用户启动应用程序时,都会调用这个后端服务来检查已经过了多长时间自app安装。这种策略很好,因为用户无法通过更改设备时间或卸载并重新安装应用程序来规避它。 但是majot的缺点是,每次启动应用程序时服务器调用都可能会降低应用程序速度,从而降低用户体验。

所以我遇到了Google提供的GCM服务。因此,我计划将服务器端服务称为存储第一次安装应用程序的安装时间。 用户之后启动应用时不会进行任何通话。当试用期结束时,服务器会将此通知发送给GCM服务器,然后GCM服务器会通知设备。 但我有两个问题:

  1. 是否可以使用GCM服务仅向某些设备发送通知,而不是所有应用程序都安装在哪个应用程序上,或者是否将通知发送给所有设备?

  2. GCM服务需要在设备上安装Google Play商店应用程序。用户可能会卸载Google Play商店应用程序,从而停止接收GCM通知,从而规避试用期约束。

  3. 输入将受到高度赞赏。

2 个答案:

答案 0 :(得分:0)

按照this链接,您将获得所需的信息,,,这是通过Google Play服务,他们是您可以直接使用您的lib文件夹中的gcm.jar文件的另一种方式,在这种情况下,您赢了'需要Google Play服务

您可以通过gcm注册用户并将注册的用户信息存储在本地服务器上,并提供其他信息,例如国家或设备ID上的用户名...通过使用此功能,您可以设置标签以向特定用户发送通知。 ..记住gcm注册不允许在注册时存储关于用户的任何标签......

答案 1 :(得分:0)

您需要使用最新的GCM库。 脚步 1)将Google-Play-Services库添加到您的项目中 2)从https://developers.google.com/cloud-messaging/android/client

注册GCM

3)从这里下载所有文件https://drive.google.com/open?id=0B2Rxy_fDHdSjXzB4bkJ4WVdNQUk

4)用户GCMRegister类来注册您的设备 5)在GCMService中收到通知代码时添加通知代码 6)在清单中添加服务

 <receiver android:name="com.google.android.gms.gcm.GcmReceiver" android:permission="com.google.android.c2dm.permission.SEND">
- <intent-filter>
  <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
- <!--  for Gingerbread GSF backward compat 
  --> 
  <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 
  <category android:name="com.fudiyo" /> 
  </intent-filter>
  </receiver>
- <service android:name="com.fudiyo.gcmservice.GcmService" android:exported="false">
- <intent-filter>
  <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
  </intent-filter>
  </service>