【问题标题】:How to change the ringer mode in xamarin android如何在xamarin android中更改铃声模式
【发布时间】:2019-07-15 09:56:15
【问题描述】:

我正在尝试使用 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# android xamarin.forms


【解决方案1】:

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

【讨论】:

  • 我得到这个异常:未处理的异常:System.NullReferenceException:发生
  • 不用担心,通过注册依赖来修复它。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
  • 2021-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
  • 1970-01-01
相关资源
最近更新 更多