我试图在 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"主页"不包含 "获取系统服务"和没有可访问的扩展方法 "GetSystemService"接受类型为"MainPage"的第一个参数可以 被发现(是否缺少使用指令或程序集 参考? RingDemo C:\Users\GTS\Desktop\RingDemo\RingDemo\RingDemo\MainPage.xaml.cs 25 Active
我无法找到适合它的组件
在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();
}