c# - 如何在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 活动
我想不出合适的组装方式
解决方案
在您的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();
}
推荐阅读
- github-actions - 如何通过另一个动作触发 gh-pages 分支更改
- python - build() 和 on_start() 方法之间的区别
- java - 如何使用 ExecutorService 在多个线程中将元素正确添加到 ConcurrentHashMap
- python-3.x - 响应选择器将内容分成两个不同的值
- wordpress - wordpress 单选按钮和下拉菜单
- autohotkey - Autohotkey 循环向下键/文件夹文件
- javascript - 是否有任何正常的解决方案来编辑列表 Aerospike 中的地图
- reactjs - 取消订阅 Paypal API + Axios + React
- javascript - 如何匹配url中的可选参数?
- swiftui - NavigationView SwiftUI 顶部的空白区域