Exemplo n.º 1
0
    public void startRinging()
    {
        if (ringtone != null)
        {
            return;
        }

        try
        {
            bool ring = true;

            if (Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.M)
            {
                NotificationManager nm         = (NotificationManager)MainActivity.Instance.GetSystemService(Context.NotificationService);
                InterruptionFilter  int_filter = nm.CurrentInterruptionFilter;
                if (int_filter != InterruptionFilter.Priority && int_filter != InterruptionFilter.All)
                {
                    ring = false;
                }
            }

            AudioManager am = (AudioManager)MainActivity.Instance.GetSystemService(Context.AudioService);
            if (am.RingerMode != RingerMode.Normal)
            {
                ring = false;
            }

            MainActivity.Instance.VolumeControlStream = Stream.Ring;
            if (ring)
            {
                Android.Net.Uri rt_url = RingtoneManager.GetDefaultUri(RingtoneType.Ringtone);
                AudioAttributes aa     = new AudioAttributes.Builder()
                                         .SetUsage(AudioUsageKind.NotificationRingtone)
                                         .Build();

                ringtone         = MediaPlayer.Create(MainActivity.Instance, rt_url, null, aa, 0);
                ringtone.Looping = true;
                ringtone.Start();
            }
        }catch (Exception e)
        {
            Logging.error("Exception occured in startRinging: " + e);
            ringtone = null;
        }
    }
Exemplo n.º 2
0
 /// <summary>
 /// Toggles do not disturb if the app has been granted that permission. Notifies the app if the permission has not been granted.
 /// </summary>
 /// <returns>true if DND was toggled, false if DND permission has not been granted</returns>
 public bool ToggleDoNotDisturb()
 {
     if (notificationManager.IsNotificationPolicyAccessGranted)
     {
         InterruptionFilter filter = notificationManager.CurrentInterruptionFilter;
         if (filter.Equals(InterruptionFilter.None))
         {
             notificationManager.SetInterruptionFilter(InterruptionFilter.All);
         }
         else
         {
             notificationManager.SetInterruptionFilter(InterruptionFilter.None);
         }
         MessagingCenter.Send(new DNDPermissionMessage(), "DNDGranted");
         return(true);
     }
     else
     {
         MessagingCenter.Send(new DNDPermissionMessage(), "DNDNotGranted");
         return(false);
     }
 }