2017-01-25 4 views
0

푸시 알림을 구독 할 수 없습니다. 내가 한 :Android 및 Quickblox (api 3.2) : 푸시 알림 구독하기

1) 내 MainActivity 패키지 이름과 동일한 패키지 이름으로 firebase 응용 프로그램을 만들었습니다.

2) google-service.json 파일을 다운로드하여/app/gradle 파일 옆에 저장했습니다.

3) Google 가이드에서 보여준대로 C2D 및 WAKE-LOCK 권한을 추가했습니다.

4) quickblox admin 패널의 pushnotification 설정 탭에 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가 생성되었습니다. 따라서 구독이 전혀 실행되는지 여부를 파악할 수 있습니다.