通知Notification
content:显示一个通知,当通知到来时,手机震动,呼吸灯亮播放音乐,点击通知内容时,跳到通知详情页,通知栏消失
一、布局
1、第一个
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<Button
android:onClick="click"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="显示通知"/>
</RelativeLayout>
2、第二个
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="this is content" />
</LinearLayout>
二、代码部分
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(this, NotificationActivirty.class);
PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification notification = new NotificationCompat.Builder(this)
.setContentTitle("This is content title")
.setContentText("This is content text")
.setWhen(java.lang.System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher))
.setContentIntent(pi)
.setSound(Uri.fromFile(new File("/system/media/audio/ringtones/Argon.ogg")))
.setVibrate(new long[]{0, 1000, 1000, 1000})
.setLights(Color.GREEN, 1000, 1000)
.setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher)))
.setPriority(NotificationCompat.PRIORITY_MAX)
.setAutoCancel(true)
.build();
manager.notify(1, notification);
}
public void click(View v) {
Intent intent = new Intent(this, NotificationActivirty.class);
PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification notification = new NotificationCompat.Builder(this)
.setContentTitle("This is content title")
.setContentText("This is content text")
.setWhen(java.lang.System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher))
.setContentIntent(pi)//大图
.setSound(Uri.fromFile(new File("/system/media/audio/ringtones/Argon.ogg")))//提示音
.setVibrate(new long[]{0, 1000, 1000, 1000})//震动
.setLights(Color.GREEN, 1000, 1000)//呼吸灯闪烁
.setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher)))//
.setPriority(NotificationCompat.PRIORITY_MAX)//设置通知的优先级为最高
.setAutoCancel(true)//点击通知进入通知详情页,通知栏信息消失
.build();
manager.notify(1, notification);
}
}
2、另一个
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_content);
NotificationManager manager=(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
manager.cancel(1);
//上面这两句和 .setAutoCancel(true)效果一样;点击通知进入通知详情页,通知栏信息消失
}
三、权限
<uses-permission android:name="android.permission.VIBRATE"/>//震动权限