想知道是否有人可以提供帮助,我在NotificationCompat.BigPictureStyle
上遇到了一些麻烦-我不知道我是否缺少某些东西,但是我的通知除图片外都有效。 ..
public class OneShotAlarm extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent)
{
int z = 4; //increase this number here to the total number of affirmations
Random rand = new Random();
int y = rand.nextInt(z);
String[] s = null;
s = new String[z]; //dim
s[0] = "i am the best and you are the most amaxzing thing on ";
s[1] = "I love and approve of myself.";
s[2] = "you are the re2t";
s[3] = "you are the res3t";
String zztitle = "";
String zzrestofline = "";
String string = s[y];
StringBuffer buffer = new StringBuffer();
if (string.length() > 25){
for(int i = 0; i < string.length(); i++) {
// Set title to first 25 chars and rest of line to rest
// if((i > 0) && (i % 100) == 0) {
if(i == 25) {
zztitle = buffer.toString();
buffer = new StringBuffer();
}
// Just adds the next character to the StringBuffer.
buffer.append(string.charAt(i));
}
zzrestofline = buffer.toString();
}
else {
zztitle = s[y];
}
setNotification(context,zzrestofline,zztitle);
WakeLocker.acquire(context);
Toast.makeText(context,s[y], Toast.LENGTH_LONG).show();
WakeLocker.release();
}
private void setNotification(Context context, String zzmsg, String zztitle) {
// http://codeversed.com/expandable-notifications-android/#Custom_View
Bitmap remote_picture = null;
remote_picture = BitmapFactory.decodeResource(context.getResources(), R.drawable.retreatgoddess);
// Create the style object with BigPictureStyle subclass.
NotificationCompat.BigPictureStyle notiStyle = new NotificationCompat.BigPictureStyle();
notiStyle.setBigContentTitle("Big Picture Expanded");
notiStyle.setSummaryText("Nice big picture.");
// Add the big picture to the style.
notiStyle.bigPicture(remote_picture);
// Creates an explicit intent for an ResultActivity to receive.
Intent resultIntent = new Intent(context, MainActivity.class); // Creates an explicit intent for an Activity in your app
// This ensures that the back button follows the recommended
// convention for the back key.
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
// Adds the back stack for the Intent (but not the Intent itself).
stackBuilder.addParentStack(MainActivity.class);
// Adds the Intent that starts the Activity to the top of the stack.
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle(zztitle)
.setContentText(zzmsg)
.setTicker(zztitle)
.setLargeIcon(remote_picture)
.setStyle(notiStyle);
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
int mId = 12345; // arbitrary number
mNotificationManager.notify(mId, mBuilder.build()); // mId allows you to update the notification later on.
最佳答案
您应该知道BigPictureStyle仅适用于Android JellyBean(4.1.2)及更高版本。 NotificationCompat类负责管理与各种Android版本的兼容性。
您在哪个设备版本上测试此代码?
关于java - NotificationCompat.BigPictureStyle可以显示图片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21271627/