3

これは私のプロジェクトフォルダ構造です。


アプリケーション/
    FCM/
        FcmMessagingService.class
        FcmRegistrationService.class
    Googleがservices.json
   アンドロイドたManifest.xml

アンドロイド-たManifest.xml
アンドロイドライブラリプロジェクトのFirebaseクラウドメッセージング。

<service android:name=".fcm.FcmRegistrationService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> 
     </intent-filter> 
</service> 

<service android:name=".fcm.FcmMessagingService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
     </intent-filter> 
</service> 

ライブラリ(サブモジュール)/
    FCM/
        LibMessagingService.class
        LibRegistrationService.class
   アンドロID-たManifest.xml

アンドロイド-たManifest.xml

<service android:name=".fcm.LibRegistrationService"> 
      <intent-filter> 
       <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> 
      </intent-filter> 
</service> 

<service android:name=".fcm.LibMessagingService"> 
      <intent-filter> 
       <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
      </intent-filter> 
</service> 

私は、アプリケーションのサービスクラスから、INSTANCE_ID_EVENTとMESSAGING_EVENTをキャプチャすることができます上記の実装では。ライブラリモジュールのfirebaseサービスクラスはまったく起動されません。

firebaseメッセージを受信したときに、アプリケーションモジュールとライブラリモジュールの両方でサービスクラスを起動することはできますか?

+0

ソリューションを見つけましたか? – Blagojco

+2

@Blagojcoはい、私はこれを回避する方法を見つけました。私の図書館では、実際のFCMサービスを追加しました。アプリケーションのFCMサービスクラスは、GoogleのFCMサービスではなく、図書館のFCMサービスを拡張します。 – Karthik

答えて

0

ライブラリモジュールに実装するのに問題はありませんでした。 ライブラリ内のすべてのサービスを実装し、クライアントマニフェストで宣言しました。これは私のプロジェクトの様子です: enter image description here

google-services.jsonファイルは、クライアントのアプリケーションディレクトリにあります。 クライアントbuild.gradleファイルの内部にはapply plugin: 'com.google.gms.google-services'

0

があります。また、ライブラリマニフェストやアプリケーションマニフェストにライブラリサービスを登録する必要がありました。実際に必要なものを見つけようとしています

`<service 
    android:name="com.libPackage.FCMService"> 
    <intent-filter> 
     <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
    </intent-filter> 
</service>` 
関連する問題