我知道您可以在推送通知参数中发送信息,例如消息,标题,图像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/