【问题标题】:change notification default icon in android?更改android中的通知默认图标?
【发布时间】:2020-10-28 22:31:51
【问题描述】:

我正在使用 onesignal 并尝试更改应用中的默认通知“铃铛图标”

所以在从Android Asset Studio 生成我的图标之后 并将其命名为ic_stat_onesignal_default 并将其添加到/android/app/src/main/res/ 文件夹中,然后我卸载应用程序并重建它, 并将其添加到有效负载通知“API”

small_icon: 'ic_stat_onesignal_default'

但是仍然,我得到了默认一个(Bell)作为通知图标:(

有没有我忘记的步骤?

如果您想知道,这是我的 AndroidManifest.xml 文件

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.salonyUser">

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

    <application
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:theme="@style/AppTheme">
      <meta-data android:name="com.onesignal.NotificationAccentColor.DEFAULT" android:value="0F0F0F" />
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
        android:launchMode="singleTask"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
    </application>

</manifest>

编辑

添加后 AndroidManifest.xml

<meta-data
    android:name="com.google.firebase.messaging.default_notification_icon"
    android:resource="@drawable/ic_stat_onesignal_default" /> // I choose mipmap-xxxhdpi icon size for test. :)

我只是想测试一下 firebase 元数据是否有效,实际上它有效,我得到了我想要的图标!! 有没有人解释一下!

【问题讨论】:

    标签: android android-studio onesignal


    【解决方案1】:

    您可能还需要在NotificationCompat.Builder 中同时设置.setSmallIcon() 和.setLargeIcon()

    有关更多信息,请参阅此答案: How to set the app icon

    【讨论】:

    • 抱歉,我不是 Android 开发人员,但我应该在哪里添加这个构建器?我正在使用react-native-onesignal,之前没有提到过这个!那么在这种情况下你能帮忙我应该在哪里实现它?
    • 嘿嘿 :) @thomasciv,我刚刚更新了 Q,你能检查一下上面的编辑部分吗?
    • @OliverD 任何一个都可能必须在清单文件中注册。您可以尝试这样的事情来让它在没有 firebase 的情况下工作:名称为com.onesignal.messaging.default_notification_icon。
    • 是的,它的工作:D 但我只是?为什么使用 firebase 也可以工作
    • 可能在您从清单文件中引用 android:name 的任何地方,无论您是否实际使用 Firebase,它都会绑定到正确的图标。 name/value 对应该是最重要的。只要清单中有元数据标签。
    【解决方案2】:

    在 NotificationCompat.Builder 中设置图标,使用 .setSmallIcon() 设置小图标,.setLargeIcon() 设置大图标。 p>

    【讨论】:

    • 正如我之前对@thomasciv 所说,当我使用 react native onesignal 时,我应该把这些东西放在哪里?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2012-05-07
    相关资源
    最近更新 更多