2011-06-21 15 views
0

受信メッセージの通知を表示するアプリを開発しています。私は、アプリアイコンではなくビットマップを表示するように通知したいと思います。 私は、NotificationクラスのlargeIconフィールドを使用して、ハニカムのみでこれを行うことができると信じています。 は、私は、デバイスがハニカムを実行しているかどうかを判断するためにリフレクションを使用していますし、もしそうなら、私は、ビットマップでlargeIconフィールドを埋めるので、のようです:私のログによると、例外がトリガーされませんGmail通知のような通知クラスの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

もっと文脈を与えるべきですか?これはリフレクションを使用する適切な方法ですか? – howettl

答えて

0

あなたのコードが機能しておらず、ハニーコム以外の通知が使用されているようです。これは後でハニカムかを検出するようにしてください:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
    ... 
} 
関連する問題