В ожидании намерения или по щелчку уведомления не открывается мое желание - PullRequest
0 голосов
/ 03 октября 2018

пожалуйста, найдите код sendNotfication.Я перепробовал много вещей, но все еще не работал.Мне нужно изменить какой-нибудь файл Mainfest?

private void sendNotification(String messageBody) {
    int requestID = (int) System.currentTimeMillis();
    Intent intent = new Intent(getApplicationContext(), NotificationActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, requestID /* Request code */, intent,
            PendingIntent.FLAG_ONE_SHOT);

    String channelId = getString(R.string.default_notification_channel_id);
    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder notificationBuilder =
            new NotificationCompat.Builder(this, channelId)
                    .setSmallIcon(R.drawable.ic_stat_ic_notification)
                    .setContentTitle(getString(R.string.fcm_message))
                    .setContentText(messageBody)
                    .setAutoCancel(true)
                    .setSound(defaultSoundUri)
                    .setContentIntent(pendingIntent);

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

    // Since android Oreo notification channel is needed.
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        NotificationChannel channel = new NotificationChannel(channelId,
                "Channel human readable title",
                NotificationManager.IMPORTANCE_DEFAULT);
        notificationManager.createNotificationChannel(channel);
    }

    notificationManager.notify(requestID/* ID of notification */, notificationBuilder.build());
}

Пожалуйста, найдите файл mainfest.Это то же самое, что я нашел в Firbase.но все же, когда я нажимаю на уведомление, оно всегда переходило на SplashScreen.Я попробовал последние комментарии, но все еще не работает.

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

<application
    android:allowBackup="true"
    android:fullBackupContent="@xml/backup_descriptor"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme.NoActionBar">
    <activity
        android:name=".SplashScreenActivity"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".HomeActivity"
        android:screenOrientation="portrait" />




    <!-- [START firebase_service] -->
    <service android:name=".FCMTest.MyFirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
    <!-- [END firebase_service] -->
    <service
        android:name=".FCMTest.MyJobService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.firebase.jobdispatcher.ACTION_EXECUTE" />
        </intent-filter>
    </service>

    <meta-data
        android:name="com.google.firebase.messaging.default_notification_icon"
        android:resource="@drawable/abc" />
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_color"
        android:resource="@color/colorAccent" />

    <activity android:name="com.example.guptasachin.myapplication.NotificationActivity"></activity>

1 Ответ

0 голосов
/ 09 ноября 2018

Вы используете идентификатор запроса во многих местах ..

Пожалуйста, проверьте приведенный ниже рабочий код, чтобы открыть желаемое действие:

Здесь, activity = CurrentActivity context,

   mNotificationId = unique constatnt number like 200,201..e.t.c

Попробуйте следующий код:

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(activity);
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {                  mBuilder.setColor(activity.getResources().getColor(R.color.pricify_red));
        mBuilder.setSmallIcon(R.drawable.transparent_img);
    } else {

        mBuilder.setColor(activity.getResources().getColor(R.color.pricify_red));
        mBuilder.setSmallIcon(R.drawable.app_logo);
    }

    mBuilder.setContentTitle(title)
            .setContentText(msg);
    Intent i = new Intent();
    i.setComponent(new ComponentName(currentActivity.this, DesiredActivity.class));
    PendingIntent pIntent = PendingIntent.getActivity(activity, 0, i, 0);
    mBuilder.setContentIntent(pIntent);

    NotificationManager mNotificationManager =
            (NotificationManager) activity.getSystemService(Context.NOTIFICATION_SERVICE);

    mNotificationManager.notify(mNotificationId, mBuilder.build());
...