如何在Xamarin Android中更改铃声模式

时间:2019-07-13 22:36:41

标签: c# android xamarin.forms

我正在尝试使用Xamarin.forms android项目中的AudioManager在单击按钮时将振铃器模式更改为静音

我尝试了这段代码,实际上我认为它是正确的

private void Silent_Clicked(object sender, EventArgs e)
        {
            AudioManager am = (AudioManager)this.GetSystemService(Context.AudioService);
            am.RingerMode = RingerMode.Silent;
        }

但是我收到有关GetSystemService的错误

  

严重性代码描述项目文件行抑制状态   错误CS1061“ MainPage”不包含以下内容的定义:   “ GetSystemService”,没有可访问的扩展方法   'GetSystemService'接受类型为'MainPage'的第一个参数   被发现(您是否缺少using指令或程序集   参考?)RingDemo C:\ Users \ GTS \ Desktop \ RingDemo \ RingDemo \ RingDemo \ MainPage.xaml.cs 25有效

我找不到合适的组件

1 个答案:

答案 0 :(得分:0)

在您的Xamarin.forms项目中,定义一个接口:

public interface IChangeRingModeService
{
    void changeRingMode();
}

在您的.Android项目中,创建一个新类并实现该接口:

public class ChangeRingModeService : IChangeRingModeService
{
    public void changeRingMode()
    {
        AudioManager am = (AudioManager)Application.Context.GetSystemService(Context.AudioService);
        am.RingerMode = RingerMode.Silent;
    }
}

在您单击事件中,呼叫changeRingMode

private void Silent_Clicked(object sender, EventArgs e)
{
    DependencyService.Get<IChangeRingModeService>().changeRingMode();
}