Beispiel #1
0
        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)
                        {
                        }
                    }
                }
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
                }
            }
        }
Beispiel #5
0
        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);
        }
Beispiel #7
0
        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();
                    }
                }
            }
        }