我正在开发一个应用程序,显示传入消息的通知。我希望通知显示位图而不是应用程序图标。 我相信我只能使用Notification类中的largeIcon字段在Honeycomb中执行此操作。 我正在使用反射来确定设备是否正在运行Honeycomb,如果是,我使用位图填充largeIcon字段,如下所示:
Notification notification = new Notification(icon, ticketText, when);
String sClassName = "android.app.Notification";
try {
@SuppressWarnings("rawtypes")
Class classToInvestigate = Class.forName(sClassName);
String strNewFieldName = "largeIcon";
Field largeIconField = classToInvestigate.getField(strNewFieldName);
largeIconField.set(notification, photoBitmap);
Log.e(TAG, "Notification bitmap worked properly");
} catch (ClassNotFoundException e) {
Log.e(TAG, "Notification bitmap error; ClassNotFoundException: " + e);
} catch (NoSuchFieldException e) {
Log.e(TAG, "Notification bitmap error; NoSuchFieldException: " + e);
} catch (SecurityException e) {
Log.e(TAG, "Notification bitmap error; SecurityException: " + e);
} catch (Exception e) {
Log.e(TAG, "Notification bitmap error; UnknownException: " + e);
}
根据我的日志,显示通知时不会触发任何异常。但是,位图不会显示在通知上,只显示应用程序图标。
有什么想法吗?
答案 0 :(得分:0)
听起来您的代码无效,并且正在使用非Honeycomb通知。试试这个以检测Honeycomb或更晚:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
...
}
答案 1 :(得分:0)
您是否尝试过Notification.BigPictureStyle?它应该做的工作。 http://developer.android.com/reference/android/app/Notification.BigPictureStyle.html