从标准java类设置通知栏图标

Posted

技术标签:

【中文标题】从标准java类设置通知栏图标【英文标题】:Setting notification bar icon from standard java class 【发布时间】:2012-06-26 04:26:24 【问题描述】:

我目前正在开发一个 android 项目,我正在尝试从标准 java 类(不是活动类)创建通知。

我在名为 icon.png 的可绘制文件夹中添加了一个图标,但是当我尝试使用 R.drawable.icon 将图标设置为 int 时,图标永远不会只显示默认的内置 android 图标。

我不明白为什么它没有显示我自己的图标。

感谢您提供的任何帮助。

更新 如下要求是设置通知的代码

private void showNotification(String username, String password)

    String ns = Context.NOTIFICATION_SERVICE;
    NotificationManager notificationManager = (NotificationManager)context.getSystemService(ns);

    CharSequence tickerText = "Username Copied";
    long when = System.currentTimeMillis();

    int icon = 0;

    Notification notification = new Notification(icon, tickerText, when);
    CharSequence contentTitle = "BPM - Login Management";
    CharSequence contentText = "Username Copied";

    Intent intentNotification = new Intent();
    intentNotification.setAction(Long.toString(when));
    notification.flags |= Notification.FLAG_AUTO_CANCEL;

    PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intentNotification, PendingIntent.FLAG_UPDATE_CURRENT);
    notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

    final int NOTIFICATION_ID = 1;
    notificationManager.notify(NOTIFICATION_ID, notification);

我只设置了icon = 0 只是为了阻止它给我错误。我知道我需要以某种方式使用 R.drawable 来获取实际的图标 ID。只是不知道为什么这不起作用

【问题讨论】:

您能否向我们展示您设置通知的代码? 【参考方案1】:

我不知道为什么我不能对这个问题添加评论。无论如何,您是否厌倦了单击项目菜单,然后单击清理..?然后打开 R.java 文件,看看你的图标是否列在那里? 试试这个:

 int icon = R.drawable.icon;

而不是

int icon =0;

【讨论】:

你绑定重命名并再次清理包吗?检查它是否有效?称之为别的东西,例如widgeticon.png 啊试试这个 int icon = R.drawable.icon; 感谢您的帮助,我确实提到我只做了int icon = 0 只是为了停止显示编译错误【参考方案2】:

检查您的导入。

您要导入 COM.YOURAPP.R,而不是 android.R

【讨论】:

我忘了有两个版本的 R。谢谢你的帮助。

以上是关于从标准java类设置通知栏图标的主要内容,如果未能解决你的问题,请参考以下文章

eclipse 中图标栏如何设置大小

从 android 通知中删除辅助图标

清除徽章图标而不清除通知

通知栏的写法

如何删除通知栏无效图标(重置任务栏通知区域)

Expo - 实施通知设置应用程序图标徽章编号