2016-04-26 3 views
3

Мне нужно postNotification в моем родном приложении Android.OneSignal postNotification Android

У меня есть этот код, но он не работает:

try { 
    OneSignal.postNotification(new JSONObject("{'contents': {'en':'Test Message'}, 'include_player_ids': ['" + userId + "']}"), null); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 

ответ

3

Вы можете убедиться, что значение в userId является действительным OneSignal идентификатор на свой счет, и он подписан?

Вы также можете использовать следующий код, чтобы добавить logcat logging для отладки проблемы.

try { 
    OneSignal.postNotification(new JSONObject("{'contents': {'en':'Test Message'}, 'include_player_ids': ['" + "userId" + "']}"), 
    new OneSignal.PostNotificationResponseHandler() { 
     @Override 
     public void onSuccess(JSONObject response) { 
     Log.i("OneSignalExample", "postNotification Success: " + response.toString()); 
     } 
     @Override 
     public void onFailure(JSONObject response) { 
     Log.e("OneSignalExample", "postNotification Failure: " + response.toString()); 
     } 
    }); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 
0

Это работает для меня, проверить, если идентификатор создается затем разместить уведомление о

OneSignal.idsAvailable(new OneSignal.IdsAvailableHandler() { 
      @Override 
      public void idsAvailable(String userId, String registrationId) { 
       Log.d("debug", "UserId:" + userId); 
       if (registrationId != null) { 
        String msg_welcome = getResources().getString(R.string.msg_welcome); 
        Log.d("debug", "registrationId:" + registrationId); 
        try { 
         OneSignal.postNotification(new JSONObject("{'contents': {'en': '"+ msg_welcome +"'}, 'include_player_ids': ['" + userId + "']}"), 
           new OneSignal.PostNotificationResponseHandler() { 
            @Override 
            public void onSuccess(JSONObject response) { 
             Log.i("OneSignalExample", "postNotification Success: " + response.toString()); 

            } 

            @Override 
            public void onFailure(JSONObject response) { 
             Log.e("OneSignalExample", "postNotification Failure: " + response.toString()); 
            } 
           }); 
        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 
       } 
      } 
     }); 
Смежные вопросы