2017-01-25 5 views
0

プッシュ通知を購読できません。私はしました:Android&Quickblox(API 3.2):プッシュ通知を購読する

1)私はMainActivityパッケージ名と同じパッケージ名でfirebaseアプリケーションを作成しました。

2)google-service.jsonファイルをダウンロードし、/ app /に保存しました。

3)Googleガイドに示されているように、C2DとWAKE-LOCK権限を追加しました。

4)quickblox adminパネルのプッシュ注釈の設定タブでAPI-KEYを追加しました。

5)quickbloxガイドに示されているマニフェストを修正しました。

6)上記のガイドと同じように、プッシュ通知リスナーとローカルブロードキャスト受信機を追加しました。私のマニフェストはどのように見えるかだ

<?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> 

私は3.2 SDKのバージョンを使用していますので、アプリが自動的にプッシュ通知をするユーザーを購読する必要がありますが、これは起こりません。実際にはリスナーコードは何も印刷しません:

//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"); 
} 

私は間違っていますか?

答えて

1

signInをユーザーで作成していないようで、サブスクリプションは実行されません。また、ログを見ると、D/QBASDK:SubscribeService:SubscribeServiceが作成されたような情報があります。したがって、サブスクリプションがまったく実行されるかどうかを判断できます。

関連する問題