Android p出来了,是时候了解一波新特性了。
Notification Channels
这个是从Android 8.0 引入的概念,目的是提供统一的系统来帮助用户管理通知,开发者可以为需要发送的每个不同的通知类型创建一个通知渠道。还可以创建通知渠道来反映应用的用户做出的选择。例如,可以为聊天应用的用户创建的每个聊天组建立单独的通知渠道。
假如不使用channel的话,会不给发通知。
创建流程
| 12
 3
 4
 5
 6
 7
 
 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
 
 NotificationChannel mChannel = new NotificationChannel("channel_01",
 "消息推送", NotificationManager.IMPORTANCE_DEFAULT);
 manager.createNotificationChannel(mChannel);
 }
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | Context context = DJApplication.getInstance();Notification.Builder builder = new Notification.Builder(context);
 builder.setTicker("开始下载");
 builder.setSmallIcon(R.mipmap.ic_launcher);
 builder.setLargeIcon(BitmapFactory.decodeResource(DJApplication.getInstance().getResources(), R.mipmap.ic_launcher));
 builder.setAutoCancel(true);
 PendingIntent pIntent = PendingIntent.getActivity(context, 0, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT);
 builder.setContentTitle("下载中");
 builder.setContentIntent(pIntent);
 builder.setContentText(text);
 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
 builder.setChannelId("channel_01");
 }
 manager.notify(1,  builder.build());
 
 | 
安装权限问题
这次更新之后,下载和安装权限分离了,安装需要使用
| 1
 | <uses-permission Android:name="Android.permission.REQUEST_INSTALL_PACKAGES" />
 | 
该权限可以确保下载完成之后吊起安装程序