2016-01-11 4 views
0

Эй я попробовал все учебники я смог найти в Интернете говорить о разрешении Sinch SDK для управления андроидом уведомления толчка с помощьюSinch проблема толчка уведомление

 @Override 
public int onStartCommand(Intent intent, int flags, int startId) { 

     currentUserId = ParseUser.getCurrentUser().getObjectId(); 

    if (currentUserId != null && !isSinchClientStarted()) { 
     startSinchClient(currentUserId); 
     Log.d("pp", currentUserId); 
    } 

//  make sure you have created a SinchClient 
//  if (SinchHelpers.isSinchPushIntent(broadcastIntent)) { 
//   NotificationResult result = sinchClient.relayRemotePushNotificationPayload(broadcastIntent); 
//  } 

    broadcaster = LocalBroadcastManager.getInstance(this); 

    return super.onStartCommand(intent, flags, startId); 
} 

public void startSinchClient(String username) { 
    sinchClient = Sinch.getSinchClientBuilder().context(this) 
      .userId(username) 
      .applicationKey(APP_KEY) 
      .applicationSecret(APP_SECRET).environmentHost(ENVIRONMENT).build(); 

    sinchClient.addSinchClientListener(this); 

    sinchClient.setSupportMessaging(true); 
    sinchClient.setSupportManagedPush(true); 
    sinchClient.setSupportActiveConnectionInBackground(true); 

    sinchClient.checkManifest(); 

//  sinchClient.registerPushNotificationData("goodies-59e3".getBytes()); 

    sinchClient.start(); 
} 

private boolean isSinchClientStarted() { 
    return sinchClient != null && sinchClient.isStarted(); 
} 

@Override 
public void onClientFailed(SinchClient client, SinchError error) { 
    broadcastIntent.putExtra("success", false); 
    broadcaster.sendBroadcast(broadcastIntent); 

    sinchClient = null; 
} 

, но безрезультатно, и когда я пытаюсь описанным выше способом я получаю нет результата, я даже не знаю, если что-то происходит, я не получаю уведомления, когда пытаюсь отправить сообщение тому, кто в данный момент не находится в приложении. У меня была эта проблема в течение нескольких недель, пожалуйста, я бы оценил любую работу вокруг

+1

разместить свой код, что вы пробовали. –

+0

@AnjaliTripathi Я обновил свой вопрос, пожалуйста, помогите мне здесь –

ответ

1

Выполните следующие шаги заключаются в следующем:

1) Разрешение в манифесте:

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<permission android:name="com.sinch.messagingtutorial.app.permission.C2D_MESSAGE" 
       android:protectionLevel="signature" /> 
<uses-permission android:name="com.sinch.messagingtutorial.app.permission.C2D_MESSAGE" /> 
<uses-permission 
     android:name="com.google.android.c2dm.permission.RECEIVE" /> 

2) Добавить в Google Play службы LIB для вашего проекта, а также создать идентификатор проекта Вашего проекта на Google Play разработчик консоль

3) Использование идентификатора проекта, объявить следующее LoginActivity.java OnCreate:

final GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(getApplicationContext()); 
    class RegisterGcmTask extends AsyncTask<Void, Void, String> { 
     String msg = ""; 
     @Override 
     protected String doInBackground(Void... voids) { 
      try { 
       msg = gcm.register("your-project-number"); 
      } catch (IOException ex) { 
       msg = "Error :" + ex.getMessage(); 
      } 
       return msg; 
     } 
     @Override 
     protected void onPostExecute(String msg) { 
      intent = new Intent(getApplicationContext(), ListUsersActivity.class); 
      serviceIntent = new Intent(getApplicationContext(), MessageService.class); 
      serviceIntent.putExtra("regId", msg); 
      startActivity(intent); 
      startService(serviceIntent); 
     } 
    } 

Для более подробной информации, пожалуйста, обратитесь https://www.sinch.com/tutorials/send-push-notifications-android-messaging-app-using-gcm/ ссылки

и для демо см GitHub Ссылки https://www.sinch.com/tutorials/send-push-notifications-android-messaging-app-using-gcm/

+0

Спасибо @Anjali Я попытался реализовать этот учебник, и после этого, когда я открываю приложение в первый раз, я не получаю ошибку, но когда я выхожу из приложения, я получаю ошибка с журналами: Вызвано: java.lang.NullPointerException: попытка вызвать виртуальный метод 'java.lang.String android.content.Intent.getStringExtra (java.lang.String)' на ссылке нулевого объекта Это относится к строка: regId = intent.getStringExtra ("regId"); PLS я могу получить помощь по этому поводу? –

+0

, пожалуйста, напишите код –

0

Я бы удостоверился, что ваше приложение имеет следующие разрешения на получение push-сообщений (и разрешение WAKE_LOCK для продолжения выполнения после нажатия).

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/> <uses-permission android:name="android.permission.WAKE_LOCK"/> <permission android:name="YOUR.APP.PACKAGENAME.gcm.permission.C2D_MESSAGE" android:protectionLevel="signature"/> <uses-permission android:name="YOUR.APP.PACKAGENAME.gcm.permission.C2D_MESSAGE"/>

Я бы также рекомендовать ваш отзыв ссылку на получение уведомлений GCM нажимные: https://developers.google.com/cloud-messaging/#manifest

Надеется, что это помогает!

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