我刚刚在我的Android应用中实现了FCM推送通知,我得到一个奇怪的行为,因为它似乎只在应用程序打开时加载剪影图标,但当它关闭或最小化时,我得到一个白色圆圈。我认为它显示的是ic_launcher图标,而不是我的ic_stat_white图标。我在photoshop中创建了我的基本图标并使用Android Asset Studio来获取所有大小(https://romannurik.github.io/AndroidAssetStudio/icons-notification.html),我尝试了所有可以找到或想到的解决方案,在推送通知消息中添加了额外的值(“icon “:”ic_stat_white“),使缓存无效,以及我在Stack Overflow中找到的所有内容,没有结果。
在我的Firebase Messaging Service类中,我有以下代码来创建通知:
NotificationCompat.Builder mBuilder =
(NotificationCompat.Builder) new NotificationCompat.Builder(this)
.setSmallIcon(getNotificationIcon())
.setContentTitle("App name")
.setAutoCancel(true)
.setContentText(message);
mBuilder.setContentIntent(resultPendingIntent);
// Sets an ID for the notification
int mNotificationId = 001;
// Gets an instance of the NotificationManager service
NotificationManager mNotifyMgr =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// Builds the notification and issues it.
mNotifyMgr.notify(mNotificationId, mBuilder.build());
和getNotificationIcon方法:
private int getNotificationIcon() {
boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.LOLLIPOP);
return useWhiteIcon ? R.drawable.ic_stat_white : R.mipmap.ic_launcher;
}
我觉得应用程序无法访问应用程序外部的图标或类似内容,虽然我已添加
import com.appname.R;
似乎根本没有使用它。
任何人都知道这里的问题是什么?
干杯!
答案 0 :(得分:0)
即使我从FCM管理面板设置了图标,问题也在发生,但是在PHP中创建我自己的后端控制器后似乎我没有在应用程序中获得此行为,尽管如果我不调用推送通知我自己的系统我仍然得到一个空白图标(???)。
$title = "App name";
$message = $_POST['pushmessage'];
$ch = curl_init("https://fcm.googleapis.com/fcm/send");
$header=array('Content-Type: application/json',
"Authorization: key=longAPIKEY...fromFCM");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{ \"notification\": { \"title\": \"".$title."\", \"text\": \"".$message."\" , \"icon\" : \"ic_stat_white\" }, \"to\" : \"/topics/allDevices\"}");
curl_exec($ch);
curl_close($ch);
干杯!