我们有一个自定义的 android 版本,刚刚发现 Google Cloud Messaging (GCM) 可能是非 Google 认证版本的问题。
假设是这种情况,有没有 GCM 的替代品?
我们有一个自定义的 android 版本,刚刚发现 Google Cloud Messaging (GCM) 可能是非 Google 认证版本的问题。
假设是这种情况,有没有 GCM 的替代品?
Paho项目是一个iot.eclipse.com项目,基于 MQTT 的服务器的开源客户端。
您可以查看 android 应用程序演示示例。
它将连接到 Eclipse 免费托管的基于 MQTT 的沙箱服务器以测试此应用程序。请在此处查看此服务器详细信息
借助 Urbran Air Ship 文档中显示的步骤,我在 Android 中实现了 Push Notification [ Using Urban Air Ship] 应用程序
http://urbanairship.com/docs/android_client.html ,
它以一种很好的方式工作,当我的提要更新时,我也收到了通知。这是已经完成的步骤。
Step1:在 Urban Air Ship 中创建一个账户, https://go.urbanairship.com/
第2步:从这里下载android_push.jar https://github.com/urbanairship/android-push-library/downloads
Step3:在关闭应用程序标记文件之前,在 AndroidManifest.xml 中注册接收器,如下所示
<application>
:
:
:
<receiver android:name="com.urbanairship.push.IntentReceiver">
<intent-filter>
<action android:name="com.urbanairship.airmail.END_REGISTER"></action>
<action android:name="com.urbanairship.airmail.ACCEPT_PUSH"></action>
<action android:name="com.urbanairship.airmail.NOTIFY"></action>
</intent-filter>
</receiver>
</application>
第 4 步:登录您的帐户,在他们的网站上注册您的应用程序。对于您帐户中的单击应用程序选项。
Step5:点击应用程序图标后,您可以看到添加您的应用程序选项,如下图所示
Step6:输入您的应用名称并单击推送通知支持,然后输入您的包名称。并单击创建您的应用程序按钮,一个新窗口将为您提供应用程序密钥。
第七步:在 res 文件夹下的 raw 文件夹下创建一个名为 ua.properties 的文件,即 res/raw/ua.properties 文件
Step8:将您在Urban AirShip中注册应用程序后获得的应用程序密钥以及您的应用程序的指纹输入到ua.properties文件中,如下所示。
debug=true debug.app_key=j9kRTqaCRR-E0xf-iu2XEA production.app_key=9D:54:23:3F:F3:25:AB:0B:DC:8E:D9:C8:B3:F4:96:F9
第 9 步:创建一个应用程序类,如下所示
import com.urbanairship.push.APIDReceiver; import
com.urbanairship.push.AirMail; import
com.urbanairship.push.PushReceiver;
import android.app.Application; import android.content.Intent; import
android.util.Log;
public class PushNotification extends Application { public void
onCreate(){ AirMail am = AirMail.getInstance(); am.acceptPush(this,
new PushReceiver() { @Override public void onReceive(String message,
String payload){ Log.d("push", "Got message '" + message +"' and
payload '" + payload + "'"); }
@Override public void onClick(String message, String payload){
Log.d("push", "User clicked the notification, got message and payload:
"
+ message + ", " + payload); /* In this example, we fire up our MainActivity class when the
* user clicks the Status Bar Notification. Note that we *must*
* use the flag Intent.FLAG_ACTIVITY_NEW_TASK to start a new
* activity because this callback is fired from within a
* BroadcastReceiver.
**/ Intent intent = new Intent("android.intent.action.MAIN"); intent.setClass(PushNotification.this,MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PushNotification.this.startActivity(intent); } });
am.setAPIDReceiver(this, new APIDReceiver() { @Override public void
onReceive(String apid, boolean valid){ if(valid){ Log.d("push", "Got
apid: " + apid); } else { Log.d("push", "Application registration
invalid!"); } }
@Override public void onAirMailInstallRefusal() {
Rss_Feed_Grid.register = false; Log.d("push", "AirMail Install
Refused!"); } }); } }
第 10 步:在您的 Activity 中检查以下注册码
protected static boolean register = true;
if(register){ AirMail am = AirMail.getInstance(); am.register(this); }
第 11 步:更新您的清单以注册您的应用程序
<application android:icon="@drawable/icon"
android:label="@string/app_name" android:name=".PushNotification">
Step12:现在点击Push Notification,然后点击Urbran Air Ship中的feed按钮,然后feed要监控的url
而已..
有关更多信息,请参阅我的博客 http://sankarganesh-info-exchange.blogspot.sg/p/push-notification-in-android-using.html