首页 > 解决方案 > 如何在xamarin android中更改铃声模式

问题描述

我试图在 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”的定义,并且找不到接受“MainPage”类型的第一个参数的可访问扩展方法“GetSystemService”(您是否缺少 using 指令或程序集参考?) RingDemo C:\Users\GTS\Desktop\RingDemo\RingDemo\RingDemo\MainPage.xaml.cs 25 活动

我想不出合适的组装方式

标签: c#androidxamarin.forms

解决方案


在您的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();
}

推荐阅读