1.通知
通知一般使用NotificationManger来进行管理,使用Context的getSystemService()来获取
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
但是安卓各个版本的api不稳定在通知上尤其明显,所以我们一般使用support库里的NotificationCompact类
Notification notification = new NotificationCompat.Builder(context).build();
Notification notification = new NotificationCompat.Builder(context)
.setContetTitle("This is content title).build();
然后我们调用NotificationManager的notify方法就可以让通知显示出来,notify方法接受两个参数,一个是id,一个是Notification对象
manager.notify(1,notification);
这样子我们就把创建通知的每一步分析完了,这样子就可以创建一个通知,但是当你点击这个通知的时候你会发现没有跳转,没有任何反应,这样子我们需要PendingIntent,這类似于一个延迟通知,只有用户做了某件事他才会去做,他有三个方法用来得到PendingIntent实例,根据需求有getActivity(),getBroadcast(),getService(),参数基本相同,第一个是Context,第二个基本传入0,第三个是一个Intent对象,第四个是确定PendingIntent行为,有四种参数可选,一般传入0就可以了。
Intent intent = new Intent(this,NotificationActivity.class);
PendingIntent pi = PendingIntent.getActivity(this,0,intent,0);
Notification notification = new NotificationCompat.Builder(this).setContentIntent(pi).build();
但是点击完通知并没有消失,有两种方法可以让他消失,一种就是在Builder中设置setAutoCancel(true),第二种就是代码中
NotificationManger manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
manager.cancel(1);
这个一就是我们之前设置的id号
同时通知可以设置声音,震动,闪烁
Notification notification = new NotificationComapt.Builder(this)
.....
.setSound(Uri.fromFile(new File("/dddd")))
.setVibrate(new long[]{0,1000,1000,1000})//需要在AndroidManifest中声明权限
.setLights(Color.GREEN,1000,1000)
.setDefualts(NotificationCompat.DEFAULT_ALL)
为了显示长文本或者大图,就需要使用到setStyle()这个方法了
2.调用摄像头拍照
从相册中选择图片