我按照demo的推送例子写的,action什么的都指定好了,但是推送始终到不了手机,偶尔能到一次,但是后来怎么也到不了了。想问一下,遇到这种问题该怎么解决,我已经反复检查过自己的代码和demo对比了,应该没有错。
这个是推送代码:
installationIdString = avObjects.get(0).getString("installationId");
AVPush push = new AVPush();
AVQuery query = AVInstallation.getQuery();
query.whereEqualTo("installationId", installationIdString);
push.setQuery(query);
// push.setChannel("public");
JSONObject jsonObject = new JSONObject();
jsonObject.put("action", "com.usecar.sukezc");
jsonObject.put("terminal", endPosition.getText().toString());
jsonObject.put("time", "now");
jsonObject.put("status", "0");
jsonObject.put("origin", beginPosition.getText().toString());
jsonObject.put("price", money.getText().toString());
jsonObject.put("objectId", objectId);
push.setData(jsonObject);
push.setPushToAndroid(true);
push.sendInBackground(new SendCallback() {
@Override
public void done(AVException e) {
if(e == null){
System.out.print(e);
}else{
}
}
});
} else {
// 查询出错
}
然后,接收端的receiver也定义好了:
if (intent.getAction().equals("com.usecar.sukezc")) {
JSONObject json = new JSONObject(intent.getExtras().getString("com.avos.avoscloud.Data"));
final String terminal = json.getString("terminal");
final String time = json.getString("time");
final String status = json.getString("status");
final String origin = json.getString("origin");
final String price = json.getString("price");
final String objectId = json.getString("objectId");
// Intent i = new Intent();
// i.setClassName("cn.com.usecar.driver.main", "cn.com.usecar.driver.main.OrderDetailActivity");
// i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// i.putExtra("terminal", message);
// context.startActivity(i);
Intent resultIntent = new Intent(AVOSCloud.applicationContext, OrderDetailActivity.class);
resultIntent.putExtra("terminal",terminal);
resultIntent.putExtra("time",time);
resultIntent.putExtra("status",status);
resultIntent.putExtra("origin",origin);
resultIntent.putExtra("price",price);
resultIntent.putExtra("objectId",objectId);
resultIntent.putExtra("terminal",terminal);
resultIntent.putExtra("driver", AVUser.getCurrentUser().getMobilePhoneNumber());
PendingIntent pendingIntent =
PendingIntent.getActivity(AVOSCloud.applicationContext, 0, resultIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(AVOSCloud.applicationContext)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(
AVOSCloud.applicationContext.getResources().getString(R.string.app_name))
.setContentText("速可专车向您发来一条乘客订单推送,点击查看详情~")
.setTicker("速可专车向您发来一条乘客订单推送,点击查看详情~");
mBuilder.setContentIntent(pendingIntent);
mBuilder.setAutoCancel(true);
int mNotificationId = 10086;
NotificationManager mNotifyMgr =
(NotificationManager) AVOSCloud.applicationContext
.getSystemService(
Context.NOTIFICATION_SERVICE);
mNotifyMgr.notify(mNotificationId, mBuilder.build());
}
} catch (Exception e) {
}
manifest文件:
希望咱的工作人员,帮忙解答 下。