为什么当我已经更改了应该在清单中显示的图标时,为什么一直显示默认图标。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<application
android:name=".FirebaseInitializer"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".TitleActivity"
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=".MainActivity"
android:screenOrientation="portrait"></activity>
<service android:name=".FirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/ic_launcher" />
<activity android:name=".AboutActivity"></activity>
</application>
我的消息传递服务类扩展了FirebaseMessagingService
public class FirebaseMessagingService extends com.google.firebase.messaging.FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
createNotification(remoteMessage.getNotification().getBody());
}
private void createNotification(String message) {
Intent intent = new Intent(this, TitleActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
Uri notifSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder mNotificationBuilder = new NotificationCompat.Builder( this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("Solitude")
.setContentText(message)
.setSound(notifSound)
.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, mNotificationBuilder.build());
}
}
这真令人沮丧。请帮我解决我的问题。
答案 0 :(得分:0)
清单元数据定义了ic_launcher
,而您的Java代码也定义了ic_launcher
。
确切的位置应该出现其他图标?或换句话说:确实,您期望哪个图标?
此外,请确保您发送的消息中包含data { ... }
部分,否则如果应用程序在后台运行,则不会调用您的服务。
在这种情况下,系统会绘制纯通知推送。
接下来的事情是,这取决于Android版本。由于(我认为)Android 7,通知图标应为单色,因此您的ic_launcher
很可能不适合作为通知图标。
您应该设计自己的通知图标,该图标只能是带有Alpha的白色像素。
希望这会有所帮助, 干杯格里斯
答案 1 :(得分:0)
使用此
mBuilder.setSmallIcon(R.mipmap.ic_launcher_round);
不使用此
mBuilder.setSmallIcon(R.mipmap.ic_launcher);