ディレクトリ
まず、基本的な使用の通知
(1)、図の効果。
(2)工程を用い
(3)の使用の詳細
予告の第二に、使用
(1)音を設定します
(2)振動
(3)LEDが点滅を配置
(4)のデフォルト設定の効果を
第三に、事前通知の使用
(1)、リッチテキスト情報を設定します
(2)、画像情報を提供
(3)、通知を設定することの重要性
まず、通知の基本的な使用
(1)、図の効果。
(2)、手順使用して
1を、あなたが最初に管理するためにNotificationManagerを必要とする、あなたはコンテキストを取得するgetSystemServiceメソッドを呼び出すことができ、ここでコンテキストを渡します。NOTIFICAATION_SERVICEをすることができます。
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
2は、不安定性の問題は、互換性のあるバージョンを使用するクラスNotificationCompatので、ここで、注目の異なるバージョンを表示させます原因別のAPIには、オブジェクトを作成するために、通知Builderのコンストラクタを使用する必要があります。
通知通知=新しいNotificationCompat.Builder(MainActivity.this).build();
3、基本的な設定
.setContentTitle("这是测试通知标题") //设置标题
.setContentText("这是测试通知内容") //设置内容
.setWhen(System.currentTimeMillis()) //设置时间
.setSmallIcon(R.mipmap.ic_launcher) //设置小图标
.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher)) //设置大图标
図4は、通知が表示されていることを確認する)(通知コール(最初のパラメータはIDであり、各通知指定されたIDが異なっており、2番目のパラメータは通知オブジェクトであることを保証するために)
manager.notify(1,notification);
(3)、细节使用
<一>、跳转功能:
使用PendingIntent进行通知点击跳转功能。
PendingIntent的用法:
(1)、通过getActivity()、getBroadcast()、getService()方法获取实例
(2)、参数(Context context, int requestCode, Intent intent, int flags)
第一个参数:Context
第二个参数:requestCode 一般用不到 ,通常设置为0
第三个参数:intent
第四个参数:flags 用于确定PendingIntent的行为。这里传0就行
(3)、使用方法
Intent intent = new Intent(MainActivity.this,NotificationActivity.class);
PendingIntent pi = PendingIntent.getActivity(MainActivity.this,0,intent,0);
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification notification = new NotificationCompat.Builder(MainActivity.this)
.setContentTitle("这是测试通知标题") //设置标题
.setContentText("这是测试通知内容") //设置内容
.setWhen(System.currentTimeMillis()) //设置时间
.setSmallIcon(R.mipmap.ic_launcher) //设置小图标 只能使用alpha图层的图片进行设置
.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher)) //设置大图标
.setContentIntent(pi)
// .setAutoCancel(true)
.build();
manager.notify(1,notification);
<二>、通知取消:
我们发现当点击查看通知后,通知栏中还保留着通知图标,我们怎么取消呢
(1)、使用setAutoCancel(true)
Notification notification = new NotificationCompat.Builder(MainActivity.this)
...
.setAutoCancel(true) //设置为自动取消
.build();
manager.notify(1,notification);
(2)、在跳转后的Activity中
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
manager.cancel(1);
这里的cancle传入的是一个1,就是我们创建Notification中指定的通知的ID
二、通知的进阶使用
都是一行代码进行设置, 这里就不分开写了
Notification notification = new NotificationCompat.Builder(MainActivity.this)
...
.setSound(Uri.fromFile(new File("/system/media/audio/ringtones/Luna.ogg"))) //设置通知提示音
.setVibrate(new long[]{0,1000,1000,1000}) //设置振动, 需要添加权限 <uses-permission android:name="android.permission.VIBRATE"/>
.setLights(Color.GREEN,1000,1000)//设置前置LED灯进行闪烁, 第一个为颜色值 第二个为亮的时长 第三个为暗的时长
.setDefaults(NotificationCompat.DEFAULT_ALL) //使用默认效果, 会根据手机当前环境播放铃声, 是否振动
.build();
manager.notify(1,notification);
三、通知的高级使用
(1)、设置富文本信息
当我们使用setContentText的时候, 内容为很长的字符串, 显示结果是这样的:
内容显示不全。如果产品就要显示完全的内容文本我们怎么办。
可以使用setStyle()
Notification notification = new NotificationCompat.Builder(MainActivity.this)
...
.setStyle(new NotificationCompat.BigTextStyle().bigText("这是一段很长的文字很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长"))
.build();
manager.notify(1,notification);
私たちは、のsetStyle()メソッドでNotificationCompat.BigTextStyleオブジェクトを作成しました。この目的は、行のテキストを渡すために、そのbigText()メソッドを呼び出して、長いテキスト情報をカプセル化するために使用されます。
(2)、设置带有图片消息
通知通知=新しいNotificationCompat.Builder(MainActivity.this)
...
.setStyle(新しいNotificationCompat.BigPictureStyle()。bigPicture(BitmapFactory.decodeResource(getResources()、R.mipmap.ic_launcher)))
.build()。
manager.notify(1、通知)。
メソッドの呼び出しの通知の写真は、(大きな画像)のに参加します
(3)、通知を設定することの重要性
Notification notification = new NotificationCompat.Builder(MainActivity.this)
...
.setPriority(NotificationCompat.PRIORITY_MAX)
.build();
manager.notify(1,notification);
setPriorityをメソッドは整数パラメータはこの通知の重要度を設定するために使用されている受信し、選択することができる5つの値である
デフォルトの重要性を示し、同様の効果を設定しない:PRIORITY_DEFAULTは
PRIORITY_MINを:重要最低の度合いを表します。ユーザーがステータスバーのプルダウン時にシステムにのみ表示されます
PRIORITY_LOWを:それほど重要で表し、システムは、より重要な通知の後ろになり、このタイプの通知を減らす、または表示の順序を変更します。
PRIORITY_HIGHは:そのようなシステムは、通知方法かもしれない、または順序を変更するには、かなり初期の、重要度が高いことを示す
PRIORITY_MAX:最も重要度、個別のメッセージボックスは、ユーザーが適切に加えることができ、ポップアップ表示されます。
ディスプレイケースMAXを設定します。