MainActivity.java:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button sentNotice=(Button) findViewById(R.id.sendNotice);
sentNotice.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.sendNotice:
//给通知加上点击功能
Intent intent=new Intent(this,NotificationActivity.class);
PendingIntent pi=PendingIntent.getActivity(this,0,intent,0);
//对通知进行管理,获取通知
NotificationManager manager= (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification notification=new NotificationCompat.Builder(this)//使用Builder构造器
//来创建Notification对象
.setContentTitle("This is content title") //用于指定通知的标题内容
.setContentText("This is content text")// 用于指定通知的正文内容
.setWhen(System.currentTimeMillis())//用于指定通知被创建的时间,
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))
.setContentIntent(pi)
.setAutoCancel(true) //点击通知时,通知自动取消
.setSound(Uri.fromFile(new File("/system/media/audio/ringtones/Luna.ogg"))) //音频
//封装长文字信息
.setStyle(new NotificationCompat.BigTextStyle().bigText("Learn how to build notification,send and sync data,and use" +
"voice actions.Get the official Android IDE and developer tools to build apps for Android ."))
//显示图片
.setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(),R.drawable.big)))
.setPriority(NotificationCompat.PRIORITY_MAX) //通知消息让用户立刻看到
.build();
manager.notify(1,notification);
break;
default:
break;
}
}
}
activity_main.xml:
<Button
android:id="@+id/sendNotice"
android:text="Send Notice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
通知的进阶技巧
1,通知来时让手机振动
——下标为0的值表示手机静止的时长
——下标为1的值表示手机振动的时长
——下标为2得值表示手机静止的时长以此类推
Notification notification=new NotificationCompat.Builder(this)
.setVibrate(new long[] {0,1000,1000,1000})
.build();
2,控制手机振动需要权限
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
3,手机前置LED灯的闪烁
第一个参数时灯的颜色
第二个参数灯亮的时长
第三个参数灯暗的时长
Notification notification=new NotificationCompat.Builder(this)
.setLights(Color.GREEN,1000,1000)
.build();
4,根据当前的手机环境来决定播放什么铃声,一句如何振动
Notification notification=new NotificationCompat.Builder(this)
.setDefaults(NotificationCompat.DEFAULT_ALL)
.build();