我知道您可以在推送通知参数中发送信息,例如消息,标题,图像URL等。Facebook如何在通知区域中将您的个人资料照片与您的消息一起显示?我想在通知区域中使用外部图像,因此当您将其拉下时,您会看到带有消息的个人资料图像。现在,我的只是显示了drawable文件夹中的默认图标。我认为这可能是一个常见问题,但找不到任何东西。你能帮忙的话,我会很高兴。

最佳答案

该语句将使用一种方法将URL(自然是指向图像的URL)转换为Bitmap

Bitmap bitmap = getBitmapFromURL("https://graph.facebook.com/YOUR_USER_ID/picture?type=large");

注意:由于您提到了Facebook个人资料,因此我提供了一个URL,可获取您的Facebook用户大尺寸个人资料图片。但是,您可以将其更改为指向需要在Notification中显示的图像的任何URL。

以及将从您在上面的语句中指定的URL获取图像的方法:
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;
    }
}

现在,将上面创建的bitmap实例传递给Notification.Builder实例。在此示例代码中,我将其称为 builder 。在以下行中使用它:builder.setLargeIcon(bitmap);。我假设您知道如何显示实际的Notification及其配置。因此,我将跳过该部分,仅添加构建器。
// CONSTRUCT THE NOTIFICATION DETAILS
builder.setAutoCancel(true);
builder.setSmallIcon(R.drawable.ic_launcher);
builder.setContentTitle("Some Title");
builder.setContentText("Some Content Text");
builder.setLargeIcon(bitmap);
builder.setContentIntent(pendingIntent);

哦,差点忘了,如果您还没有这样做,则需要在 list 中设置以下权限:
<uses-permission android:name="android.permission.INTERNET" />

关于android - Android-在通知栏(如Facebook)中使用外部个人资料图片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16007401/

10-10 08:27