public void Beep(int count) { Android.Net.Uri ringtone = RingtoneManager.GetActualDefaultRingtoneUri(Context, RingtoneType.Notification); Ringtone notification = RingtoneManager.GetRingtone(Context, ringtone); // If phone is not set to silent mode if (notification != null) { for (int i = 0; i < count; ++i) { notification.Play(); long timeout = 5000; while (notification.IsPlaying && (timeout > 0)) { timeout = timeout - 100; try { Thread.Sleep(100); } catch (InterruptedException e) { } } } } }
public override void OnReceive(Context context, Intent intent) { var message = intent.GetStringExtra("message"); var title = intent.GetStringExtra("title"); var notIntent = new Intent(context, typeof(MainActivity)); var contentIntent = PendingIntent.GetActivity(context, 0, notIntent, PendingIntentFlags.CancelCurrent); Uri ring_uri = RingtoneManager.GetActualDefaultRingtoneUri(context, RingtoneType.Ringtone); Ringtone r = RingtoneManager.GetRingtone(context, ring_uri); //r.Play(); mytts = new TextToSpeech_Android(); Intent checkttsIntent = new Intent(); checkttsIntent.SetAction(TextToSpeech.Engine.ActionCheckTtsData); mytts.Speak(message); //var manager = NotificationManagerCompat.From(context); //var style = new NotificationCompat.BigTextStyle(); //style.BigText(message); }
private void InitNotificationBuilder(Context context) { // 新建自定义样式 var build = new XGBasicPushNotificationBuilder(); // 设置自定义样式属性,该属性对对应的编号生效,指定后不能修改。 build.SetIcon(Resource.Drawable.ic_launcher) .SetSound( RingtoneManager.GetActualDefaultRingtoneUri( ApplicationContext, RingtoneType.Alarm)) // 设置声音 .SetDefaults(NotificationDefaults.Vibrate) // 振动 .SetFlags(NotificationFlags.NoClear); // 是否可清除 // 设置通知样式,样式编号为2,即build_id为2,可通过后台脚本指定 XGPushManager.SetPushNotificationBuilder(this, 2, build); // 下同 var build11 = new XGBasicPushNotificationBuilder(); build11.SetIcon(Resource.Drawable.ic_launcher) .SetSound( RingtoneManager .GetDefaultUri(RingtoneType.Alarm)) .SetVibrate(new long[] { 1000, 1000, 1000, 1000, 1000 }) .SetFlags(NotificationFlags.NoClear); XGPushManager.SetPushNotificationBuilder(this, 5, build11); }
private async void PlayRingtone() { if (!ServiceProvider.SettingsProvider.IsDndModeEnabled) { try { var ringtone = RingtoneManager.GetActualDefaultRingtoneUri(this, RingtoneType.Ringtone); _mediaPlayer = new MediaPlayer(); _mediaPlayer.SetDataSource(this, ringtone); if (int.Parse(Build.VERSION.Sdk) >= 21) { var customAudioAttributes = new AudioAttributes.Builder() .SetUsage(AudioUsageKind.NotificationRingtone) .SetContentType(AudioContentType.Sonification) .Build(); _mediaPlayer.SetAudioAttributes(customAudioAttributes); } else { #pragma warning disable CS0618 // Type or member is obsolete _mediaPlayer.SetAudioStreamType(Stream.Ring); #pragma warning restore CS0618 // Type or member is obsolete } _mediaPlayer.Looping = true; _mediaPlayer.Prepare(); _mediaPlayer.Start(); await Task.Delay(30 * 1000).ContinueWith(_ => { StopRingtone(); TurnFlashlightNotificationsOff(); }); } catch (Exception ex) { ServiceProvider.LoggingService.Log(ex, LogType.Error); } } }
private async void PlayRingtone() { if (!SettingsProvider.IsDndModeEnabled) { var ringtone = RingtoneManager.GetActualDefaultRingtoneUri(this.AppContext, RingtoneType.Ringtone); _mediaPlayer = MediaPlayer.Create(this, ringtone); _mediaPlayer.Looping = true; _mediaPlayer.Start(); await Task.Delay(30 * 1000).ContinueWith(_ => { StopRingtone(); TurnFlashlightNotificationsOff(); }); } }
//Recepcion y creación de la notificación private void CreateNotification(Context context, string title, string desc) { MessagingCenter.Send(CommonHelper.UpdateListRequests, CommonHelper.UpdateListRequests); var notificationManager = GetSystemService(Context.NotificationService) as NotificationManager; var uiIntent = new Intent(this, typeof(SplashActivity)); NotificationCompat.Builder builder = new NotificationCompat.Builder(this); var notification = builder.SetContentIntent(PendingIntent.GetActivity(this, 0, uiIntent, 0)) .SetSmallIcon(Resource.Drawable.LogoNT) .SetContentText(desc) .SetContentTitle(title) .SetDefaults((int)(NotificationDefaults.Sound | NotificationDefaults.Vibrate)) .SetSound(RingtoneManager.GetActualDefaultRingtoneUri(context, RingtoneType.Notification)) .SetAutoCancel(true).Build(); notificationManager?.Notify(1, notification); }
public void SetRingtone(string path) { Java.IO.File sdfile = new Java.IO.File(path); ContentValues values = new ContentValues(); values.Put(MediaStore.MediaColumns.Data, sdfile.AbsolutePath); values.Put(MediaStore.MediaColumns.Title, sdfile.Name); values.Put(MediaStore.MediaColumns.MimeType, "audio/mp3"); values.Put(MediaStore.Audio.Media.InterfaceConsts.IsRingtone, true); values.Put(MediaStore.Audio.Media.InterfaceConsts.IsAlarm, true); values.Put(MediaStore.Audio.Media.InterfaceConsts.IsNotification, false); values.Put(MediaStore.Audio.Media.InterfaceConsts.IsMusic, false); //Android.Net.Uri uri = MediaStore.Audio.Media.GetContentUriForPath(sdfile.AbsolutePath); //ContentResolver resolver = this.context.ContentResolver; //Android.Net.Uri newuri = resolver.Insert(uri, values); Android.Net.Uri oldRingtoneUri = RingtoneManager.GetActualDefaultRingtoneUri(this.Context, RingtoneType.Ringtone); Android.Net.Uri oldAlarmUri = RingtoneManager.GetActualDefaultRingtoneUri(this.Context, RingtoneType.Alarm); Android.Net.Uri uri2 = MediaStore.Audio.Media.GetContentUriForPath(sdfile.AbsolutePath); Android.Net.Uri newuri2 = null; //新增铃声URI ID string deleteid = ""; ICursor cursor = this.Context.ContentResolver.Query(uri2, null, MediaStore.MediaColumns.Data + "=?", new string[] { path }, null); if (cursor.MoveToFirst()) { deleteid = cursor.GetString(cursor.GetColumnIndex("_id")); } string ringtoneid = ""; string alarmid = ""; if (null != oldRingtoneUri) { ringtoneid = oldRingtoneUri.LastPathSegment; } if (null != oldAlarmUri) { alarmid = oldAlarmUri.LastPathSegment; } Android.Net.Uri setRingtoneUri; if (ringtoneid.Equals(deleteid)) { //setRingtoneUri = newuri2; //如果新添加的铃声ID和已设置的铃声ID相同,不需要重新设置铃声,因为重复URI也是插入不了的。 //setRingtoneUri = oldRingtoneUri; Toast.MakeText(this.Context, "当前已是来电铃声,无需重复设置!", ToastLength.Short).Show(); } else { if (alarmid.Equals(deleteid)) { setRingtoneUri = oldAlarmUri; RingtoneManager.SetActualDefaultRingtoneUri(this.Context, RingtoneType.Ringtone, setRingtoneUri); Toast.MakeText(this.Context, "来电设置成功!", ToastLength.Short).Show(); } else { Context.ContentResolver.Delete(uri2, MediaStore.MediaColumns.Data + "=\"" + sdfile.AbsolutePath + "\"", null); newuri2 = Context.ContentResolver.Insert(uri2, values); //setRingtoneUri = oldRingtoneUri; //如果新添加的铃声ID和已设置的铃声ID不同,就新增铃声 if (newuri2 != null) { setRingtoneUri = newuri2; RingtoneManager.SetActualDefaultRingtoneUri(this.Context, RingtoneType.Ringtone, setRingtoneUri); Toast.MakeText(this.Context, "来电设置成功!", ToastLength.Short).Show(); } } } }