parse 推送
Android推送通知是一项用于直接向Android智能手机发送消息的服务。 使用此服务,开发人员可以在数据可用后立即将其发送到Android应用程序 ,这样,Android应用程序就不必向服务器发出请求即可知道是否有新信息可用。
使用Android推送服务,应用程序可以节省智能手机的电量并减少网络流量:用户体验也得到了改善。
有几种不同的方法可用于实现Android推送通知 ,标准方法是使用GCM(Google云消息传递),但还有一些非常有趣的替代方法,例如Parse.com ,更易于使用。
解析设置项目
首先是创建一个Parse帐户并配置一个新应用。 这很容易。 完成所有工作后,就该在Android Studio中创建一个新项目,并修改build.grade以包含解析库了:
dependencies {
...
compile 'com.parse.bolts:bolts-android:1.2.1'
compile 'com.parse:parse-android:1.10.1'
}
现在,您可以按照Parse.com提供的教程进行操作 。 在我们的例子中,我们创建了一个ParseTutorialApplication来扩展Application并将其用于配置Parse连接:
public class ParseTutorialApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
System.out.println("Application");
Parse.initialize(this, "your key", "your key");
ParseInstallation.getCurrentInstallation().saveInBackground();
}
}
现在,您将使用库提供的默认接收器,在下一段中,您将看到如何自定义它。
如果项目配置正确,则可以尝试使用Web界面发送推送通知:
在您的Android模拟器中,您应该收到以下通知:
请确保模拟器包含Google API。
解析自定义接收器:JSON数据
现在是时候定制接收器了,这样我们就可以支持定制消息,而不仅仅是文本消息。 自定义接收方,可以实现应用逻辑,例如解析传入消息和显示自定义消息等。 回顾Manifest.xml,作为广播接收器,它使用了标准接收器com.parse.ParsePushBroadcastReceiver ,现在要自定义其行为,我们可以将其子类化:
public class JSONCustomReceiver extends ParsePushBroadcastReceiver {
@Override
protected void onPushReceive(Context context, Intent intent) {
.....
}
}
并覆盖onPushReceiver以便在消息可用时实现应用程序逻辑。 让我们假设消息是这样的JSON格式:
{"message":"hello phone"}
在onPushReceiver ,应用程序解析消息:
private String getData(String jsonData) {
// Parse JSON Data
try {
System.out.println("JSON Data ["+jsonData+"]");
JSONObject obj = new JSONObject(jsonData);
return obj.getString("message");
}
catch(JSONException jse) {
jse.printStackTrace();
}
return "";
}
一旦消息内容可用并从JSON消息中提取,应用程序就会使用NotificationCompat和NotificationManager将其通知给用户。
// Create custom notification
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_not_alert)
.setContentText(data)
.setContentTitle("Notification from Parse")
.setContentIntent(pendingIntent);
Notification notification = builder.build();
NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
其中, pendingIntent是在用户触摸推送通知时启动“活动”的Intent的实例:
// Add custom intent
Intent cIntent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
cIntent, PendingIntent.FLAG_UPDATE_CURRENT);
最后,应用程序通知消息:
nm.notify(1410, notification);
最终结果如下图所示:
注意,我们也自定义了通知图标。
在本文的结尾,您知道如何使用Parse.com发送android推送消息,在接下来的文章中,您将学习如何使用推送通知来发送由Arduino等智能控制器生成的消息,敬请期待!
翻译自: https://www.javacodegeeks.com/2015/09/android-push-notification-using-parse.html
parse 推送