Пользовательское уведомление с большим imageview не дисплей, который является url формы загрузки в Remoteview android

Привет друзья я хочу показать уведомление с пользовательским макетом и в том, что есть большой imageview также доступны, которые загрузить форму url ниже мой код

<RelativeLayout
    android_id="@+id/rel_top"
    android_layout_width="fill_parent"
    android_layout_height="wrap_content"
    android_orientation="vertical" >

    <ImageView
        android_id="@+id/img"
        android_layout_width="wrap_content"
        android_layout_height="wrap_content"
        android_layout_marginLeft="5dp"
        android_src="@drawable/app_logo"/>

    <TextView
        android_id="@+id/noti_first"
        android_layout_width="wrap_content"
        android_layout_height="wrap_content"
        android_text="Title"
        android_textStyle="bold" 
        android_layout_marginLeft="5dp"
        android_layout_toRightOf="@+id/img"
        android_layout_alignTop="@+id/img"
        android_textSize="@dimen/text_16"
        />
    <TextView
        android_id="@+id/noti_second"
        android_layout_width="wrap_content"
        android_layout_height="wrap_content"
        android_text="Title"
        android_textStyle="normal"
        android_layout_marginLeft="5dp"
        android_layout_below="@+id/noti_first"
        android_layout_toRightOf="@+id/img"
        android_textSize="@dimen/text_15"
        />
    <ImageView
        android_id="@+id/img_preview"
        android_layout_width="match_parent"
        android_layout_below="@+id/img"
        android_maxHeight="100dp"
        android_layout_marginTop="@dimen/margin_5dp"
        android_layout_height="100dp"
        android_src="@drawable/app_logo"/>
</RelativeLayout>

Класс GCMReceiver

public class GCMReceiver extends BroadcastReceiver {
private String TAG = GCMReceiver.class.getName();
private NotificationManager mNotificationManager;

@SuppressLint("NewApi")
@Override
public void onReceive(Context context, Intent intent) {
    try {

        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                .detectAll()
                .penaltyLog()
                .build();
        StrictMode.setThreadPolicy(policy);

        System.out.println("Receive");
        String title = intent.getExtras().getString("title");
        String message = intent.getExtras().getString("message");
        String description = intent.getExtras().getString("description");
        String product_id = intent.getExtras().getString("product_id");
        String image = intent.getExtras().getString("image");
        String url = intent.getExtras().getString("url");

        Log.d("Title", title);
        Log.d("description", description);
        Log.d("Image", image);
        Log.d("url", url);
        Tags.mStringViewAllCategory = url;
        if (title != null && title.trim().length() > 0) {
            Random random = new Random();

            mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
            Intent notifyIntent = new Intent(context, ActivityCategoryViewAll.class);
            notifyIntent.putExtra("title", title);
            notifyIntent.putExtra("Description", description);
            notifyIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

            PendingIntent contentIntent = PendingIntent.getActivity(context, random.nextInt(), notifyIntent, 0);
            RemoteViews expandedView = new RemoteViews(context.getPackageName(), R.layout.notification_layout);
            expandedView.setTextViewText(R.id.noti_first, title);
            expandedView.setTextViewText(R.id.noti_second, description);
            Bitmap bitmap = getBitmapFromURL("https://s3.amazonaws.com/atbdev/cache/product/soie-western-wear-off-white-color-top-fl-uphQF570b7bbbd6033.jpg/3c7d9ab9f983e1598d7c00c524e5d5c0");

            expandedView.setImageViewBitmap(R.id.img_preview, bitmap);

            Notification notification = new NotificationCompat.Builder(context)
                    .setSmallIcon(R.drawable.app_logo)
                    .setAutoCancel(true)
                    .setContentIntent(contentIntent)
                    .setContentTitle(title).setContentText(message).build();
            notification.defaults |= Notification.DEFAULT_SOUND;
            mNotificationManager.notify(random.nextInt(), notification);
        }
    } catch (Exception e) {
        Log.e(TAG, "onReceive >> " + e.toString());
    }
}

public Bitmap getBitmapFromURL(String strURL) {
    try {
        URL url = new URL(strURL);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        Bitmap myBitmap = BitmapFactory.decodeStream(input);
        return myBitmap;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
     }
    }

 }

Когда я бегу над уведомлением кода приходит совершенно но изображение URL не показывает никакую идею как могу я разрешить эту проблему? все ваши предложения заметны.

РЕДАКТИРОВАТЬ

Notification notification = new NotificationCompat.Builder(context)
                    .setSmallIcon(R.drawable.app_logo)
                    .setAutoCancel(true)
                    .setContentIntent(contentIntent)
                    .setContent(expandedView)
                    .setContentTitle(title).setContentText(message).build();
            notification.defaults |= Notification.DEFAULT_SOUND;
            mNotificationManager.notify(random.nextInt(), notification);

Скриншоты

Введите описание изображения здесь

1 ответ

  1. В коде вы устанавливаете title & content в качестве notificatio по умолчанию, но для пользовательского уведомления вам нужно установить content с remoteView, т. е. expandedView

    Ниже код может помочь вам

       Notification notification = new NotificationCompat.Builder(context)
                    .setSmallIcon(R.drawable.app_logo)
                    .setAutoCancel(true)
                    .setContentIntent(contentIntent)
                    .setContent(expandedView).build();
        notification.bigContentView = expandedView;