2017-01-25 3 views
0

Ich bin nicht in der Lage, Push-Benachrichtigungen zu abonnieren. Ich tat:Android & Quickblox (api 3.2): Abonnieren Push-Benachrichtigungen

1) Ich erstellte eine Firebase-Anwendung, mit dem gleichen Paketnamen wie mein MainActivity-Paketname;

2) Ich habe die Datei google-service.json heruntergeladen und in meiner/app/neben der Gradle-Datei gespeichert;

3) Ich habe die C2D und WAKE-LOCK Berechtigungen hinzugefügt, wie der Google Guide gezeigt hat;

4) Ich habe den API-KEY in der Registerkarte pushnotification im QuickBlox Admin Panel hinzugefügt;

5) Ich habe das Manifest wie im Quickblox Guide gezeigt modifiziert;

6) Ich habe einen Push-Notification-Listener und einen lokalen Broadcast-Empfänger hinzugefügt, wie in der gleichen Anleitung wie oben gezeigt.

Das ist, wie mein Manifest aussieht:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="it.unical.sistemidistribuiti.ddf.appraia"> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<permission android:name="it.unical.sistemidistribuiti.ddf.appraia.permission.C2D_MESSAGE" 
    android:protectionLevel="signature" /> 
<uses-permission android:name="it.unical.sistemidistribuiti.ddf.appraia.permission.C2D_MESSAGE"/> 
<meta-data android:name="com.quickblox.messages.TYPE" android:value="FCM" /> 
<meta-data android:name="com.quickblox.messages.SENDER_ID" android:value="@string/sender_id" /> 
<meta-data android:name="com.quickblox.messages.QB_ENVIRONMENT" android:value="DEVELOPMENT" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:largeHeap="true" 
    android:theme="@style/AppTheme" 
    android:name="it.unical.sistemidistribuiti.ddf.appraia.AppraiaApplication"> 
    <activity 
     android:name="it.unical.sistemidistribuiti.ddf.appraia.StartActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar" 
     android:screenOrientation="portrait" 
     android:configChanges="orientation|keyboardHidden"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name="it.unical.sistemidistribuiti.ddf.appraia.MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar" 
     android:screenOrientation="portrait" 
     android:configChanges="orientation|keyboardHidden"> 
    </activity> 
    <activity 
     android:name="it.unical.sistemidistribuiti.ddf.appraia.NewsDetailActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar" 
     android:screenOrientation="portrait" 
     android:configChanges="orientation|keyboardHidden"> 
    </activity> 
    <activity 
     android:name="it.unical.sistemidistribuiti.ddf.appraia.CreatePostActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar" 
     android:screenOrientation="portrait" 
     android:configChanges="orientation|keyboardHidden"> 
    </activity> 
    <activity 
     android:name="it.unical.sistemidistribuiti.ddf.appraia.UserProfileActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar" 
     android:screenOrientation="portrait" 
     android:configChanges="orientation|keyboardHidden"> 
    </activity> 
    <receiver 
     android:name="com.google.android.gms.gcm.GcmReceiver" 
     android:exported="true" 
     android:permission="com.google.android.c2dm.permission.SEND" > 
     <intent-filter> 
      <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
      <category android:name="com.example.gcm" /> 
     </intent-filter> 
    </receiver> 
    <service 
     android:name="com.quickblox.messages.services.fcm.QBFcmPushListenerService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.MESSAGING_EVENT" /> 
     </intent-filter> 
    </service> 

</application> 

Da ich 3.2 SDK-Version verwenden, sollten die App automatisch den Benutzer abonnieren Sie Push-Benachrichtigungen, aber dies geschieht nicht. Tatsächlich gibt der Listener-Code nichts aus:

//This is in AppraiaApplication extends Application 
@Override 
public void onCreate() { 
    super.onCreate(); 
    QBSettings.getInstance().init(getApplicationContext(), APP_ID, AUTH_KEY, AUTH_SECRET); 
    QBSettings.getInstance().setAccountKey(ACCOUNT_KEY); 
    QBPushManager.getInstance().addListener(new QBPushManager.QBSubscribeListener() { 
     @Override 
     public void onSubscriptionCreated() { 
      System.out.println("onSubscriptionCreated"); 
     } 

     @Override 
     public void onSubscriptionError(final Exception e, int resultCode) { 
      System.out.println("onSubscriptionError" + e); 
      if (resultCode >= 0) { 
       System.out.println("Google play service exception"); 
      } 
      System.out.println("onSubscriptionError " + e.getMessage()); 
     } 
    }); 
    QBSettings.getInstance().setEnablePushNotification(true); 
    LocalBroadcastManager.getInstance(this).registerReceiver(pushBroadcastReceiver, 
      new IntentFilter("new-push-event")); 
    System.out.println("Application creation ended"); 
} 

Was mache ich falsch?

Antwort

1

Sieht so aus, als würden Sie sich nicht mit dem Benutzer anmelden, und das Abonnement wird nicht ausgeführt. Schauen Sie auch in Protokolle, es gibt Informationen wie D/QBASDK: SubscribeService: SubscribeService erstellt. So können Sie herausfinden, ob das Abonnement überhaupt ausgeführt wird.

Verwandte Themen