2015-06-14 3 views
0

Я пытаюсь сделать ChatApp. Я могу разговаривать друг с другом. Но есть проблема. Я хочу использовать push-уведомление, когда сообщение отправляется любому пользователю. Так что я добавляю эту информацию. У меня есть эти классы на Parse. Intallation, Session, User, Chat. Я использую пользовательский класс для пользователей, класс чата для каждой беседы, например, кто-то senf сообщение другое, я добавляю объект в свой класс чата.Отправка push-уведомления с помощью Parse SDK на Android

Так что я не знаю, как я могу отправить push-уведомление. Думаю, я должен использовать User objectId для поиска приятеля. И здесь я добавляю мой метод SendMessage:

private void sendMessage() { 
    if (txt.length()==0) 
     return; 
    InputMethodManager imm= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(txt.getWindowToken(), 0); 

    String s=txt.getText().toString(); 
    final Conversation c=new Conversation(s,new Date(),UserList.user.getUsername()); 
    c.setStatus(Conversation.STATUS_SENDING); 
    convList.add(c); 
    adp.notifyDataSetChanged(); 
    txt.setText(null); 

    ParseObject po=new ParseObject("Chat"); 
    po.put("sender",UserList.user.getUsername()); 
    po.put("receiver",buddy); 
    po.put("message",s); 
    po.saveEventually(new SaveCallback() { 
     @Override 
     public void done(ParseException e) { 
      if (e == null){ 
       c.setStatus(Conversation.STATUS_SENT); 
      } 
      else { 
       c.setStatus(Conversation.STATUS_FAILED); 
      } 
      adp.notifyDataSetChanged(); 
     } 
    }); 
} 

ответ

0

Используйте приведенный ниже код, чтобы отправить уведомление толчок:

public void sendpushnotification(String buddyObjectId,String message,String type,String chatObjectID){ 
    ParseQuery query = ParseInstallation.getQuery(); 

    query.whereEqualTo("owner",owner);  
    ParsePush push = new ParsePush(); 
    push.setQuery(query); 
    try { 
     JSONObject data = new JSONObject("{\"action\": \"{Action name}\",\"alert\":\""+message+"\",\"mid\":\""+chatObjectID+"\",\"pid\":\""+chatObjectID+"\",\"t\": \""+type+"\"}"); 
     push.setData(data); 
    } catch (JSONException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 


    push.sendInBackground(); 

} 

Где buddyObjectId находится объект дружище ID

chatObjectID это чат объект идентификатор сообщения после экономия

тип - тип сообщения если есть.

Также необходимо сохранить идентификатор объекта пользователя в столбце владельца таблицы установки при создании пользователя.

+0

Как сохранить userObjectID в столбце владельца таблицы intallation? @ user3107331 –

+0

ParseInstallation.getCurrentInstallation(). Put ("owner", ParseUser.getCurrentUser(). GetObjectId()); \t \t \t \t \t ParseInstallation.getCurrentInstallation(). SaveEventually(); – hemanth1488

+0

Когда я получаю приятеля с этим кодом; ParseQuery query = ParseUser.getQuery(); query.whereEqualTo («имя пользователя», приятель); query.findInBackground (....); он возвращает мне список, но как я могу найти идентификатор объекта buddy в его списке? –

Смежные вопросы