0

FCMからプッシュ通知を送信しようとしていますが、アンドロイドデバイスで受信できません。 最初はイメージでは初期化されていないが、後で初期化に成功したことがわかります。 FCM登録IDを取得できましたが、プッシュメッセージを取得できませんでした。ここアンドロイドのfcmからプッシュ通知を受け取ることができません

はスクリーンショットです: Logcat

OnReceive方法:

mRegistrationBroadcastReceiver = new BroadcastReceiver() { 
      @Override 
      public void onReceive(Context context, Intent intent) { 

      // checking for type intent filter 
      if (intent.getAction().equals(Config.REGISTRATION_COMPLETE)) { 
       // gcm successfully registered 
       // now subscribe to `global` topic to receive app wide notifications 
       FirebaseMessaging.getInstance().subscribeToTopic(Config.TOPIC_GLOBAL); 

       displayFirebaseRegId(); 

      } else if (intent.getAction().equals(Config.PUSH_NOTIFICATION)) { 
       // new push notification is received 

       String message = intent.getStringExtra("message"); 

       Toast.makeText(getApplicationContext(), "Push notification: " + message, Toast.LENGTH_LONG).show(); 

       txtMessage.setText(message); 
      } 
     } 
    }; 

私はAndroidHiveのこの例を使用していると私はまた、異なるバージョンで異なるデバイス上でそれをテストしようとしています。

誰かが何らかのアイデアを与えることができれば、それは私にとって非常に役に立ちます。

+0

プッシュ通知を送信する方法を教えてください。 –

+0

googleのfcm – Sushrita

+0

自分のサーバーまたはfcmコンソールを使用していますか? –

答えて

1

ネットワークに接続する必要があるため、AndroidManifest.xmlファイルでインターネットのアクセス許可を追加してください。また、Androidデバイスで通知アラートが生成されるため、[振動]を追加してください。 のAndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.VIBRATE"/> 

はまた、バックグラウンドでアプリに通知を受けた後、メッセージを処理するためにFirebaseMessagingServiceを拡張するサービスのエントリを追加します。このサービスを拡張します。アプリで通知を受け取る。これは、アプリがアクティブでない間にアンドロイドプッシュ通知が機能するためには絶対に必要です。

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

登録トークンのライフサイクルを処理するために使用されるFirebaseInstanceIdServiceを拡張するサービスのエントリを追加します。これは、特定のデバイス/デバイスグループにメッセージを送信するために必要です。

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

機能 は、新しいJavaクラスMyAndroidFirebaseMsgServiceを作成し、次のコードを追加します追加。 FirebaseMessagingServiceを拡張するサービスです。バックグラウンドであらゆる種類のメッセージ処理を実行し、利用可能になるとプッシュ通知を送信します。

public class MyAndroidFirebaseMsgService extends FirebaseMessagingService { 
    private static final String TAG = "MyAndroidFCMService"; 
    @Override 
    public void onMessageReceived(RemoteMessage remoteMessage) { 
     Log.d(TAG, "From: " + remoteMessage.getFrom()); 
     Log.d(TAG, "Notification Message Body: " + 
     remoteMessage.getNotification().getBody()); 
     //create notification 
     createNotification(remoteMessage.getNotification().getBody()); 
    } 

    private void createNotification(String messageBody) { 
     Intent intent = new Intent(this , ResultActivity. class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     PendingIntent resultIntent = PendingIntent.getActivity(this , 0, intent, 
     PendingIntent.FLAG_ONE_SHOT); 

     Uri notificationSoundURI = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     NotificationCompat.Builder mNotificationBuilder = new NotificationCompat.Builder(this) 
         .setSmallIcon(R.mipmap.ic_launcher) 
         .setContentTitle("Bingo") 
         .setContentText(messageBody) 
         .setAutoCancel(true) 
         .setSound(notificationSoundURI) 
         .setContentIntent(resultIntent); 

     NotificationManager notificationManager = 
       (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

     notificationManager.notify(0, mNotificationBuilder.build()); 
    } 
} 

メッセージ受信時に、OnMessageReceived()が呼び出されます。この関数の中で、LogCatコンソールにメッセージを記録し、メッセージテキストとともにcreateNotification()を呼び出します。 createNotification()メソッドはアンドロイド通知エリアにプッシュ通知を作成します。

関連する問題