我正在開發一個應用程序,顯示傳入消息的通知。我希望通知顯示一個位圖而不是應用程序圖標。 我相信我只能在Honeycomb中使用Notification類中的largeIcon字段來做到這一點。 我使用反射來確定設備運行蜂窩,如果是我填充largeIcon場與位圖,就像這樣:使用通知類的largeIcon字段,例如Gmail通知
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);
}
根據我的日誌,沒有異常被解僱時通知顯示器。但是,位圖不會顯示在通知上,只有應用程序圖標。
任何想法?
我應該給更多的上下文嗎?這是使用反射的正確方法嗎? – howettl