2016-07-28 12 views
1

私はアプリケーションで作業しています。そのアプリケーションでは、他のアプリケーション情報を取得しています。通知ビルダーに情報が表示されます。 他のアプリケーションアイコンが表示され、通知に表示したい。しかし、取得情報には描画可能なイメージが含まれています。通知ビルダーに他のアプリの描画可能アイコンを設定する

これで、描画可能なイメージを通知にどのように表示できますか。 ここに私のコードサンプルがあります。

String packageName=appSetting.getHeavyDrainingAppName(); 

ApplicationInfo app = getPackageManager().getApplicationInfo(packageName, PackageManager.GET_META_DATA); 

int iconId = ......???? 



NotificationCompat.Builder mBuilder = 
          new NotificationCompat.Builder(context) 
            .setSmallIcon(iconId) 
            .setContentTitle(getResources().getString(R.string.heavy_drain_text)) 
            .setContentText("Tap to stop") 
            .setOngoing(true); 

答えて

3

この質問についていくつかのポイントがあります:

第一:

あなたは、次の

Drawable icon = getActivity().getPackageManager().getApplicationIcon(packageName); 

      Bitmap bitmap = ((BitmapDrawable)icon).getBitmap(); 

      NotificationCompat.Builder mBuilder = 
        new NotificationCompat.Builder(context) 
          .setLargeIcon(bitmap) 
          .setContentTitle("hahah") 
          .setContentText("Tap to stop") 
          .setOngoing(true); 

のように、(代わりにリソースIDの)DrawableのからLargeIconを設定することができます2nd:

SmallIconを23以下に設定する必要がある場合は、 R.drawable.your_resourceのようなリソースID。 NotificationCompat.Builderでは、Drawable s or Bitmaps in setSmallIcon()が使用できません。

第三:幸いにも、サポートは以下のように、Notification.Builderを使用して、バージョン23+にsetSmallIcon()Icon型に拡張されました

Drawable icon = getActivity().getPackageManager().getApplicationIcon(packageName); 

      Bitmap bitmap = ((BitmapDrawable)icon).getBitmap(); 

      Notification.Builder mBuilder = 
        new Notification.Builder(context) 
          .setSmallIcon(Icon.createWithBitmap(bitmap)) 
          .setLargeIcon(bitmap) 
          .setContentTitle("hahah") 
          .setContentText("Tap to stop") 
          .setOngoing(true); 
+0

は、それはあなたの問題を解決していますか? –

+0

それは私のために働いていない... –

+0

あなたはどの部分を試しましたか?私は、あなたがDrawableまたはBitmapでsetSmallIconを使うことはできないと書いていたので、プレ23バージョンです。 –

関連する問題