1.适配8.0发送通知
2.通知提示音
粘贴部分代码(亲测有效 放心使用)
发送通知适配8.0
private NotificationManager manager;
private Notification. Builder notification;
private boolean isNotification ( ) {
return NotificationManagerCompat. from ( this ) . areNotificationsEnabled ( ) ;
}
if ( ! isNotification ( ) ) {
rquestPremission ( mActivity) ;
} else {
sendNotificotaion ( ) ;
}
private boolean rquestPremission ( BaseActivity context) {
if ( ! NotificationManagerCompat. from ( context) . areNotificationsEnabled ( ) ) {
Intent localIntent = new Intent ( ) ;
if ( Build. VERSION. SDK_INT >= Build. VERSION_CODES. O) {
localIntent. addFlags ( Intent. FLAG_ACTIVITY_NEW_TASK) ;
localIntent. setAction ( "android.settings.APPLICATION_DETAILS_SETTINGS" ) ;
localIntent. setData ( Uri. fromParts ( "package" , context. getPackageName ( ) , null) ) ;
} else if ( android. os. Build. VERSION. SDK_INT >= Build. VERSION_CODES. LOLLIPOP) {
localIntent. setAction ( "android.settings.APP_NOTIFICATION_SETTINGS" ) ;
localIntent. putExtra ( "app_package" , context. getPackageName ( ) ) ;
localIntent. putExtra ( "app_uid" , context. getApplicationInfo ( ) . uid) ;
}
context. startActivityForResult ( localIntent, 2 ) ;
return false ;
}
return true ;
}
@Override
protected void onActivityResult ( int requestCode, int resultCode, Intent data) {
if ( requestCode == 2 ) {
sendNotificotaion ( ) ;
}
super . onActivityResult ( requestCode, resultCode, data) ;
}
public void sendNotificotaion ( BaseActivity context, String title, String msg) {
if ( rquestPremission ( context) ) {
manager = ( NotificationManager) context. getSystemService ( NOTIFICATION_SERVICE) ;
notification = null;
if ( Build. VERSION. SDK_INT >= 26 ) {
NotificationChannel channel = new NotificationChannel ( "id" , "name" , NotificationManager. IMPORTANCE_HIGH) ;
manager. createNotificationChannel ( channel) ;
notification = new Notification. Builder ( context, "id" )
. setContentTitle ( title)
. setContentText ( msg)
. setSmallIcon ( R. mipmap. icon) ;
} else {
notification = new Notification. Builder ( context)
. setContentTitle ( title)
. setContentText ( msg)
. setSmallIcon ( R. mipmap. icon) ;
}
notification. setProgress ( 100 , 0 , false ) ;
manager. notify ( 1 , notification. build ( ) ) ;
notificationPlayVideo ( ) ;
}
}
发送通知提示音
所有系统类型音频:
/**
* Type that refers to sounds that are used for the phone ringer.
*/
public static final int TYPE_RINGTONE = 1;//铃声类型
/**
* Type that refers to sounds that are used for notifications.
*/
public static final int TYPE_NOTIFICATION = 2;//类型通知
/**
* Type that refers to sounds that are used for the alarm.
*/
public static final int TYPE_ALARM = 4;//类型警报
/**
* All types of sounds.
*/
public static final int TYPE_ALL = TYPE_RINGTONE | TYPE_NOTIFICATION | TYPE_ALARM;//全部输入
public void notificationPlayVideo ( ) {
Uri uri = RingtoneManager. getDefaultUri ( RingtoneManager. TYPE_NOTIFICATION) ;
Ringtone rt = RingtoneManager. getRingtone ( getApplicationContext ( ) , uri) ;
rt. play ( ) ;
}