下面列出了android.app.NotificationChannel#setVibrationPattern ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static void checkAndCreateNotificationChannel(Context context) {
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.O) {
return;
}
NotificationManager notificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationChannel notificationChannel = notificationManager.getNotificationChannel("yourLocalWeather");
boolean createNotification = notificationChannel == null;
if (!createNotification &&
((notificationChannel.getImportance() == NotificationManager.IMPORTANCE_LOW) ||
(AppPreference.isVibrateEnabled(context) && (notificationChannel.getVibrationPattern() == null)))) {
notificationManager.deleteNotificationChannel("yourLocalWeather");
createNotification = true;
}
if (createNotification) {
NotificationChannel channel = new NotificationChannel("yourLocalWeather",
context.getString(R.string.notification_channel_name),
NotificationManager.IMPORTANCE_DEFAULT);
channel.setDescription(context.getString(R.string.notification_channel_description));
channel.setVibrationPattern(isVibrateEnabled(context));
channel.enableVibration(AppPreference.isVibrateEnabled(context));
channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
channel.setSound(null, null);
notificationManager.createNotificationChannel(channel);
}
}
private static void createNotificationChannel() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationManager mNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
// 通知渠道的id
String id = "1";
// 用户可以看到的通知渠道的名字.
CharSequence name = "notification channel";
// 用户可以看到的通知渠道的描述
String description = "notification description";
int importance = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel mChannel = new NotificationChannel(id, name, importance);
// 配置通知渠道的属性
mChannel.setDescription(description);
// 设置通知出现时的闪灯(如果 android 设备支持的话)
mChannel.enableLights(true);
mChannel.setLightColor(Color.RED);
// 设置通知出现时的震动(如果 android 设备支持的话)
mChannel.enableVibration(true);
mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
//最后在notificationmanager中创建该通知渠道
mNotificationManager.createNotificationChannel(mChannel);
}
}
/**
* for API 26+ create notification channels
*/
private void createchannel() {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
NotificationChannel mChannel = new NotificationChannel(id,
getString(R.string.channel_name), //name of the channel
NotificationManager.IMPORTANCE_DEFAULT); //importance level
//important level: default is is high on the phone. high is urgent on the phone. low is medium, so none is low?
// Configure the notification channel.
mChannel.setDescription(getString(R.string.channel_description));
mChannel.enableLights(true);
// Sets the notification light color for notifications posted to this channel, if the device supports this feature.
mChannel.setLightColor(Color.RED);
mChannel.enableVibration(true);
mChannel.setShowBadge(true);
mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
nm.createNotificationChannel(mChannel);
}
}
private static void createChannels(Context context)
{
if (Build.VERSION.SDK_INT >= 26)
{
NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationChannel pinnedChannel = new NotificationChannel(ActionService.CHANNEL_PINNED,
context.getString(R.string.opentasks_notification_channel_pinned_tasks),
NotificationManager.IMPORTANCE_DEFAULT);
// pinned Notifications should not get a badge
pinnedChannel.setShowBadge(true);
pinnedChannel.enableLights(false);
pinnedChannel.enableVibration(true);
pinnedChannel.setVibrationPattern(new long[] { 0, 100, 100, 100, 0 });
pinnedChannel.setSound(null, null);
nm.createNotificationChannel(pinnedChannel);
NotificationChannel dueDates = new NotificationChannel(ActionService.CHANNEL_DUE_DATES,
context.getString(R.string.opentasks_notification_channel_due_dates), NotificationManager.IMPORTANCE_HIGH);
dueDates.setShowBadge(true);
dueDates.enableLights(true);
dueDates.enableVibration(true);
nm.createNotificationChannel(dueDates);
}
}
private void initialize(){
android.app.NotificationManager notificationManager = (android.app.NotificationManager) app.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && notificationManager.getNotificationChannel(weMessage.NOTIFICATION_CHANNEL_NAME) == null) {
NotificationChannel channel = new NotificationChannel(weMessage.NOTIFICATION_CHANNEL_NAME, app.getString(R.string.notification_channel_name), android.app.NotificationManager.IMPORTANCE_HIGH);
AudioAttributes audioAttributes = new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_INSTANT).build();
channel.enableLights(true);
channel.enableVibration(true);
channel.setLightColor(Color.BLUE);
channel.setVibrationPattern(new long[]{1000, 1000});
channel.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION), audioAttributes);
notificationManager.createNotificationChannel(channel);
}
}
/**
* for API 26+ create notification channels
*/
private void createchannel() {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
NotificationChannel mChannel = new NotificationChannel(id,
getString(R.string.channel_name), //name of the channel
NotificationManager.IMPORTANCE_DEFAULT); //importance level
//important level: default is is high on the phone. high is urgent on the phone. low is medium, so none is low?
// Configure the notification channel.
mChannel.setDescription(getString(R.string.channel_description));
mChannel.enableLights(true);
// Sets the notification light color for notifications posted to this channel, if the device supports this feature.
mChannel.setLightColor(Color.RED);
mChannel.enableVibration(true);
mChannel.setShowBadge(true);
mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
nm.createNotificationChannel(mChannel);
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
//创建NotificationChannel
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
NotificationChannel channel = new NotificationChannel("com.xyoye.dandanplay.smbservice.playchannel", "SMB服务", NotificationManager.IMPORTANCE_LOW);
channel.enableVibration(false);
channel.setVibrationPattern(new long[]{0});
channel.enableLights(false);
channel.setSound(null, null);
if (notificationManager != null) {
notificationManager.createNotificationChannel(channel);
}
}
startForeground(NOTIFICATION_ID, buildNotification());
return super.onStartCommand(intent, flags, startId);
}
/**
* Opens a notification channel and disables the LED and vibration
*/
private void openChannel() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, this.getResources().getString(R.string.notification_channel_downloader), android.app.NotificationManager.IMPORTANCE_LOW);
// Disable lights & vibration
channel.enableVibration(false);
channel.enableLights(false);
channel.setVibrationPattern(null);
// Allow lockscreen control
channel.setLockscreenVisibility(NotificationCompat.VISIBILITY_PUBLIC);
// Register the channel
mNotificationManager.createNotificationChannel(channel);
}
}
@RequiresApi(api = Build.VERSION_CODES.O)
private synchronized void createNotificationChannel() {
CharSequence name = MobiComKitConstants.PUSH_NOTIFICATION_NAME;
int importance = NotificationManager.IMPORTANCE_HIGH;
if (mNotificationManager != null && mNotificationManager.getNotificationChannel(MobiComKitConstants.AL_PUSH_NOTIFICATION) == null) {
NotificationChannel mChannel = new NotificationChannel(MobiComKitConstants.AL_PUSH_NOTIFICATION, name, importance);
mChannel.enableLights(true);
mChannel.setLightColor(Color.GREEN);
mChannel.setShowBadge(ApplozicClient.getInstance(context).isUnreadCountBadgeEnabled());
if (ApplozicClient.getInstance(context).getVibrationOnNotification()) {
mChannel.enableVibration(true);
mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
}
AudioAttributes audioAttributes = new AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_NOTIFICATION).build();
mChannel.setSound(TextUtils.isEmpty(soundFilePath) ? RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION) : Uri.parse(soundFilePath), audioAttributes);
mNotificationManager.createNotificationChannel(mChannel);
Utils.printLog(context, TAG, "Created notification channel");
}
}
@TargetApi(Build.VERSION_CODES.O)
private void createNotificationChannel() {
//第一个参数:channel_id
//第二个参数:channel_name
//第三个参数:设置通知重要性级别
//注意:该级别必须要在 NotificationChannel 的构造函数中指定,总共要五个级别;
//范围是从 NotificationManager.IMPORTANCE_NONE(0) ~ NotificationManager.IMPORTANCE_HIGH(4)
NotificationChannel channel = new NotificationChannel(CHANNEL_ID, CHANNEL_NAME,
NotificationManager.IMPORTANCE_DEFAULT);
channel.canBypassDnd();//是否绕过请勿打扰模式
channel.enableLights(true);//闪光灯
channel.setLockscreenVisibility(VISIBILITY_SECRET);//锁屏显示通知
channel.setLightColor(Color.RED);//闪关灯的灯光颜色
channel.canShowBadge();//桌面launcher的消息角标
channel.enableVibration(true);//是否允许震动
channel.getAudioAttributes();//获取系统通知响铃声音的配置
channel.getGroup();//获取通知取到组
channel.setBypassDnd(true);//设置可绕过 请勿打扰模式
channel.setVibrationPattern(new long[]{100, 100, 200});//设置震动模式
channel.shouldShowLights();//是否会有灯光
getManager().createNotificationChannel(channel);
}
public static void init(Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
String name = "Technical maintenance";
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel channel = new NotificationChannel(ID, name, importance);
channel.setSound(null, null);
channel.setVibrationPattern(null);
NotificationManager notificationManager = context.getSystemService(NotificationManager.class);
// Mandatory; it is not possible to change the sound of an existing channel after its initial creation
Objects.requireNonNull(notificationManager, "notificationManager must not be null");
notificationManager.deleteNotificationChannel(ID_OLD);
notificationManager.createNotificationChannel(channel);
}
}
public ScreenshotService(Context ctx, BleDevice device)
{
mDevice = device;
mCtx = ctx;
mNM = (NotificationManager) mCtx.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "Screenshot Service", NotificationManager.IMPORTANCE_MIN);
notificationChannel.setDescription("Screenshot download");
notificationChannel.setVibrationPattern(new long[]{0L});
mNM.createNotificationChannel(notificationChannel);
}
}
private void createNotificationChannel() {
mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mChannelID = getPackageName() + ".channel_01";
// The user-visible name of the channel.
CharSequence name = getString(R.string.channel_name);
// The user-visible description of the channel.
String description = getString(R.string.channel_description);
int importance = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel mChannel = new NotificationChannel(mChannelID, name, importance);
// Configure the notification channel.
mChannel.setDescription(description);
mChannel.enableLights(true);
// Sets the notification light color for notifications posted to this
// channel, if the device supports this feature.
mChannel.setLightColor(Color.RED);
mChannel.enableVibration(true);
mChannel.setVibrationPattern(mVibratePattern);
//Uri soundURI = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.alarm_rooster);
mChannel.setSound(soundURI, (new AudioAttributes.Builder()).setUsage(AudioAttributes.USAGE_NOTIFICATION).build());
mNotificationManager.createNotificationChannel(mChannel);
}
static private NotificationChannel updateNotificationChannel( Context context, NotificationChannel notificationChannel, final AndroidPushTemplate template )
{
if( template.getShowBadge() != null )
notificationChannel.setShowBadge( template.getShowBadge() );
if( template.getPriority() != null && template.getPriority() > 0 && template.getPriority() < 6 )
notificationChannel.setImportance( template.getPriority() ); // NotificationManager.IMPORTANCE_DEFAULT
AudioAttributes audioAttributes = new AudioAttributes.Builder()
.setUsage( AudioAttributes.USAGE_NOTIFICATION_RINGTONE )
.setContentType( AudioAttributes.CONTENT_TYPE_SONIFICATION )
.setFlags( AudioAttributes.FLAG_AUDIBILITY_ENFORCED )
.setLegacyStreamType( AudioManager.STREAM_NOTIFICATION )
.build();
notificationChannel.setSound( PushTemplateHelper.getSoundUri( context, template.getSound() ), audioAttributes );
if (template.getLightsColor() != null)
{
notificationChannel.enableLights( true );
notificationChannel.setLightColor( template.getLightsColor()|0xFF000000 );
}
if( template.getVibrate() != null && template.getVibrate().length > 0 )
{
long[] vibrate = new long[ template.getVibrate().length ];
int index = 0;
for( long l : template.getVibrate() )
vibrate[ index++ ] = l;
notificationChannel.enableVibration( true );
notificationChannel.setVibrationPattern( vibrate );
}
return notificationChannel;
}
@TargetApi(26)
public static NotificationChannel getChan(Notification.Builder wip) {
final Notification temp = wip.build();
if (temp.getChannelId() == null) return null;
// create generic audio attributes
final AudioAttributes generic_audio = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
.setContentType(AudioAttributes.CONTENT_TYPE_UNKNOWN)
.build();
// create notification channel for hashing purposes from the existing notification builder
NotificationChannel template = new NotificationChannel(
temp.getChannelId(),
getString(temp.getChannelId()),
NotificationManager.IMPORTANCE_DEFAULT);
// mirror the notification parameters in the channel
template.setGroup(temp.getChannelId());
template.setVibrationPattern(temp.vibrate);
template.setSound(temp.sound, generic_audio);
template.setLightColor(temp.ledARGB);
if ((temp.ledOnMS != 0) && (temp.ledOffMS != 0))
template.enableLights(true); // weird how this doesn't work like vibration pattern
template.setDescription(temp.getChannelId() + " " + wip.hashCode());
// get a nice string to identify the hash
final String mhash = my_text_hash(template);
// create another notification channel using the hash because id is immutable
final NotificationChannel channel = new NotificationChannel(
template.getId() + mhash,
getString(temp.getChannelId()) + mhash,
NotificationManager.IMPORTANCE_DEFAULT);
// mirror the settings from the previous channel
channel.setSound(template.getSound(), generic_audio);
if (addChannelGroup()) {
channel.setGroup(template.getGroup());
} else {
channel.setGroup(channel.getId());
}
channel.setDescription(template.getDescription());
channel.setVibrationPattern(template.getVibrationPattern());
template.setLightColor(temp.ledARGB);
if ((temp.ledOnMS != 0) && (temp.ledOffMS != 0))
template.enableLights(true); // weird how this doesn't work like vibration pattern
template.setDescription(temp.getChannelId() + " " + wip.hashCode());
// create a group to hold this channel if one doesn't exist or update text
getNotifManager().createNotificationChannelGroup(new NotificationChannelGroup(channel.getGroup(), getString(channel.getGroup())));
// create this channel if it doesn't exist or update text
getNotifManager().createNotificationChannel(channel);
return channel;
}
/**
* Creation of notification on operations completed
*/
public NotificationBuilder createNotification(String title, String ringtone, boolean vibrate, PendingIntent notifyIntent) {
NotificationManager notificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mNotificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID,
title, NotificationManager.IMPORTANCE_HIGH);
// Configure the notification channel.
mNotificationChannel.setDescription("beacon location notification channel");
mNotificationChannel.enableLights(true);
if (vibrate) {
mNotificationChannel.setVibrationPattern(mVibrate_pattern);
mNotificationChannel.enableVibration(true);
} else {
mNotificationChannel.enableVibration(false);
}
mNotificationChannel.setLightColor(Color.YELLOW);
mNotificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
mNotificationChannel.setSound(null, null);
/* if (ringtone != null) {
AudioAttributes att = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.build();
mNotificationChannel.setSound(Uri.parse(ringtone), att);
} else {
mNotificationChannel.setSound(null, null);
}
*/
notificationManager.createNotificationChannel(mNotificationChannel);
}
mBuilder = new NotificationCompat.Builder(mContext, NOTIFICATION_CHANNEL_ID);
mBuilder.setAutoCancel(true)
.setDefaults(vibrate?(Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE):Notification.DEFAULT_LIGHTS)
.setSmallIcon(getNotificationSmallIcon())
.setContentTitle(title)
.setColor(ContextCompat.getColor(mContext, R.color.hn_orange));
setRingtone(ringtone);
if (notifyIntent != null) {
mBuilder.setContentIntent(notifyIntent);
}
setLargeIcon(getNotificationLargeIcon());
return this;
}
@Override
public void onCreate() {
mNM = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "Synchronization Service", NotificationManager.IMPORTANCE_LOW);
notificationChannel.setDescription("Connection status");
notificationChannel.setVibrationPattern(new long[]{0L});
notificationChannel.setShowBadge(false);
mNM.createNotificationChannel(notificationChannel);
}
mBleMngr = get(getApplication());
BleManagerConfig cfg = new BleManagerConfig();
cfg.forceBondDialog = true;
cfg.taskTimeoutRequestFilter = new TaskTimeoutRequestFilter();
cfg.defaultScanFilter = new WatchesFilter();
cfg.enableCrashResolver = true;
cfg.bondFilter = new BondFilter();
cfg.alwaysUseAutoConnect = true;
cfg.useLeTransportForBonding = true;
if (BuildConfig.DEBUG)
cfg.loggingEnabled = true;
mBleMngr.setConfig(cfg);
mPrefs = getSharedPreferences(MainActivity.PREFS_NAME, Context.MODE_PRIVATE);
String defaultDevMacAddr = mPrefs.getString(MainActivity.PREFS_DEFAULT_MAC_ADDR, "");
String defaultLocalName = mPrefs.getString(MainActivity.PREFS_DEFAULT_LOC_NAME, "");
if(!defaultDevMacAddr.isEmpty()) {
if(!mBleMngr.hasDevice(defaultDevMacAddr))
mBleMngr.newDevice(defaultDevMacAddr, defaultLocalName);
mDevice = mBleMngr.getDevice(defaultDevMacAddr);
mDevice.setListener_State(SynchronizationService.this);
mWeatherService = new WeatherService(getApplicationContext(), mDevice);
mNotificationService = new NotificationService(getApplicationContext(), mDevice);
mMediaService = new MediaService(getApplicationContext(), mDevice);
mScreenshotService = new ScreenshotService(getApplicationContext(), mDevice);
mTimeService = new TimeService(getApplicationContext(), mDevice);
silentModeService = new SilentModeService(getApplicationContext());
mDevice.connect();
}
updateNotification();
}
/**
* Create push notification channel with provided id, name and importance of the channel.
* You can call this method also when you need to update the name or description of a channel, at
* this case you should use original channel id.
*
* @param context The application context.
* @param channelId The id of the channel.
* @param channelName The user-visible name of the channel.
* @param channelImportance The importance of the channel. Use value from 0 to 5. 3 is default.
* Read more https://developer.android.com/reference/android/app/NotificationManager.html#IMPORTANCE_DEFAULT
* Once you create a notification channel, only the system can modify its importance.
* @param channelDescription The user-visible description of the channel.
* @param groupId The id of push notification channel group.
* @param enableLights True if lights enable for this channel.
* @param lightColor Light color for notifications posted to this channel, if the device supports
* this feature.
* @param enableVibration True if vibration enable for this channel.
* @param vibrationPattern Vibration pattern for notifications posted to this channel.
* @param lockscreenVisibility How to be shown on the lockscreen.
* @param bypassDnd Whether should notification bypass DND.
* @param showBadge Whether should notification show badge.
*/
private static void createNotificationChannel(Context context, String channelId, String
channelName, int channelImportance, String channelDescription, String groupId, boolean
enableLights, int lightColor, boolean enableVibration, long[] vibrationPattern, int
lockscreenVisibility, boolean bypassDnd, boolean showBadge) {
if (context == null || TextUtils.isEmpty(channelId)) {
return;
}
if (BuildUtil.isNotificationChannelSupported(context)) {
try {
NotificationManager notificationManager =
context.getSystemService(NotificationManager.class);
if (notificationManager == null) {
Log.e("Notification manager is null");
return;
}
NotificationChannel notificationChannel = new NotificationChannel(channelId,
channelName, channelImportance);
if (!TextUtils.isEmpty(channelDescription)) {
notificationChannel.setDescription(channelDescription);
}
if (enableLights) {
notificationChannel.enableLights(true);
notificationChannel.setLightColor(lightColor);
}
if (enableVibration) {
notificationChannel.enableVibration(true);
// Workaround for https://issuetracker.google.com/issues/63427588
if (vibrationPattern != null && vibrationPattern.length != 0) {
notificationChannel.setVibrationPattern(vibrationPattern);
}
}
if (!TextUtils.isEmpty(groupId)) {
notificationChannel.setGroup(groupId);
}
notificationChannel.setLockscreenVisibility(lockscreenVisibility);
notificationChannel.setBypassDnd(bypassDnd);
notificationChannel.setShowBadge(showBadge);
notificationManager.createNotificationChannel(notificationChannel);
} catch (Throwable t) {
Util.handleException(t);
}
}
}
@CordovaMethod
private void createChannel(JSONObject options, CallbackContext callbackContext) throws JSONException {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
throw new UnsupportedOperationException("Notification channels are not supported");
}
String channelId = options.getString("id");
String channelName = options.getString("name");
int importance = options.getInt("importance");
NotificationChannel channel = new NotificationChannel(channelId, channelName, importance);
channel.setDescription(options.optString("description", ""));
channel.setShowBadge(options.optBoolean("badge", true));
channel.enableLights(options.optBoolean("light", false));
channel.setLightColor(options.optInt("lightColor", 0));
String soundName = options.optString("sound", "default");
if (!"default".equals(soundName)) {
String packageName = cordova.getActivity().getPackageName();
Uri soundUri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + packageName + "/raw/" + soundName);
channel.setSound(soundUri, new AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE)
.build());
}
JSONArray vibrationPattern = options.optJSONArray("vibration");
if (vibrationPattern != null) {
int patternLength = vibrationPattern.length();
long[] patternArray = new long[patternLength];
for (int i = 0; i < patternLength; i++) {
patternArray[i] = vibrationPattern.getLong(i);
}
channel.setVibrationPattern(patternArray);
channel.enableVibration(true);
} else {
channel.enableVibration(options.optBoolean("vibration", true));
}
notificationManager.createNotificationChannel(channel);
callbackContext.success();
}
private void createShowNotification() {
NotificationManager mNF = (NotificationManager) mContext.getSystemService(NOTIFICATION_SERVICE);
NotificationCompat.Builder mBuilder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
String name = "com_hardwork_fg607_relaxfinger_channel";
String id = "悬浮助手";
String description = "悬浮助手channel";
int importance = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel mChannel = new NotificationChannel(id, name, importance);
mChannel.setDescription(description);
mChannel.enableVibration(true);
mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
mNF.createNotificationChannel(mChannel);
mBuilder =
new NotificationCompat.Builder(mContext,id)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle("RelaxFinger")
.setTicker("悬浮球隐藏到通知栏啦,点击显示!")
.setContentText("点击显示悬浮球");
}else{
mBuilder =
new NotificationCompat.Builder(mContext)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle("RelaxFinger")
.setTicker("悬浮球隐藏到通知栏啦,点击显示!")
.setContentText("点击显示悬浮球");
}
Intent resultIntent = new Intent(Config.ACTION_SHOW_FLOATBALL);
PendingIntent resultPendingIntent = PendingIntent.getBroadcast(mContext,(int) SystemClock.uptimeMillis(), resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
Notification notification = mBuilder.build();
notification.flags |= Notification.FLAG_NO_CLEAR;
mNF.notify(R.string.app_name, notification);
}