代码:
public class MainActivity extends AppCompatActivity { private final int NOTIFY_ID = 0x123; //通知的ID @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取通知管理器,用于发送通知 NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); NotificationCompat.Builder notification = new NotificationCompat.Builder(MainActivity.this); // 创建一个Notification对象 // 设置打开该通知,该通知自动消失 notification.setAutoCancel(true); // 设置显示在状态栏的通知提示信息 notification.setTicker("subtitle"); // 设置通知的小图标 notification.setSmallIcon(R.mipmap.ic_launcher); //设置下拉列表中的大图标 notification.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher)); // 设置通知内容的标题 notification.setContentTitle("ContentTitle"); // 设置通知内容 notification.setContentText("点击查看详情!"); //设置发送时间 notification.setWhen(System.currentTimeMillis()); // 创建一个启动其他Activity的Intent Intent intent = new Intent(MainActivity.this , NotifyActivity.class); PendingIntent pi = PendingIntent.getActivity( MainActivity.this, 0, intent, 0); //设置通知栏点击跳转 notification.setContentIntent(pi); //发送通知 notificationManager.notify(NOTIFY_ID, notification.build()); } }
在android8.0的机子里不会弹出通知,,会弹出一个toast,
Developer warning for package “xxx.xxx.xxx”
Failed to post notification on channel “xxx”
See log for more details
还会报错:
NotificationService: No Channel found for pkg=com.example.xxx.notifydemo, channelId=null, id=291, tag=null, opPkg=com.example.xxx.notifydemo, callingUid=10074, userId=0, incomingUserId=0, notificationUid=10074, notification=Notification(channel=null pri=0 contentView=null vibrate=null sound=null tick defaults=0x0 flags=0x10 color=0x00000000 vis=PRIVATE)
解决方法:https://blog.youkuaiyun.com/rentee/article/details/78303532