Я разрабатываю приложение, которое показывает уведомление для входящего сообщения. Я хотел бы, чтобы уведомление отображало растровое изображение, а не значок приложения.
Я полагаю, что могу сделать это только в Honeycomb, используя поле largeIcon в классе Notification.
Я использую отражение, чтобы определить, работает ли на устройстве 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);
}
Согласно моему журналу, исключение не генерируется при отображении уведомления. Однако растровое изображение не отображается в уведомлении, только значок приложения.
Есть идеи?