Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们如何改变xamarin形式的振铃器模式_Xamarin_Xamarin.forms_Permissions_Permission Denied - Fatal编程技术网

我们如何改变xamarin形式的振铃器模式

我们如何改变xamarin形式的振铃器模式,xamarin,xamarin.forms,permissions,permission-denied,Xamarin,Xamarin.forms,Permissions,Permission Denied,尝试将振铃器模式更改为正常模式时出现运行时错误。我正在使用依赖项服务以xamarin形式调用android中的音频管理器,但当振铃器模式更改为静默模式(可能已经静默)时,代码运行无误。关于更改振铃器模式,您可以按照以下步骤操作 1.在Xamarin.Forms PCL中定义一个接口 public interface IChangeRingModeService { void changeRingModeToNormal(); void changeRingModeToVibra

尝试将振铃器模式更改为正常模式时出现运行时错误。我正在使用依赖项服务以xamarin形式调用android中的音频管理器,但当振铃器模式更改为静默模式(可能已经静默)时,代码运行无误。

关于更改振铃器模式,您可以按照以下步骤操作

1.在Xamarin.Forms PCL中定义一个接口

 public interface IChangeRingModeService
{
    void changeRingModeToNormal();
    void changeRingModeToVibrate();

    void changeRingModeToSilent();

}
  • 在Android项目中,在Mainactivity.cs中实现此接口,请不要忘记注册依赖项

    [assembly: Dependency(typeof(MainActivity))]
    
    namespace App4.Droid
    {
    [Activity(Label = "App4", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize| ConfigChanges.Orientation)]
    public class MainActivity : 
       global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity, IChangeRingModeService
     {
    AudioManager am;      
    protected override void OnCreate(Bundle savedInstanceState)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;
    
    
        base.OnCreate(savedInstanceState);
    
        global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
        LoadApplication(new App());                            
    
    }
    
    public void changeRingModeToVibrate()
    {
        am = (AudioManager)Android.App.Application.Context.GetSystemService(Context.AudioService);
        am.RingerMode = RingerMode.Vibrate;
    }
    
    public void changeRingModeToNormal()
    {
        am = (AudioManager)Android.App.Application.Context.GetSystemService(Context.AudioService);
        am.RingerMode = RingerMode.Normal;
    }
    
    public void changeRingModeToSilent()
    {
        am = (AudioManager)Android.App.Application.Context.GetSystemService(Context.AudioService);
        am.RingerMode = RingerMode.Silent;
    }}}
    
  • 在单击事件中调用此方法

     private void Button1licked(object sender, EventArgs e)
    {
        DependencyService.Get<IChangeRingModeService>().changeRingModeToVibrate();
    }
    
    private void Button2licked(object sender, EventArgs e)
    {
        DependencyService.Get<IChangeRingModeService>().changeRingModeToNormal();
    }
    
    private void Button3licked(object sender, EventArgs e)
    {
        DependencyService.Get<IChangeRingModeService>().changeRingModeToSilent();
    }
    
    单击私有无效按钮1(对象发送者,事件参数e) { DependencyService.Get().ChangeringModeToVibration(); } 单击私有void按钮2(对象发送者,事件参数e) { DependencyService.Get().changeRingModeToNormal(); } 单击私有无效按钮3(对象发送方,事件参数e) { DependencyService.Get().changeRingModeToSilent(); }

  • 具体的例外情况是什么?您用来执行此操作的代码在哪里?@Mr,有更新吗?您的问题解决了吗?如果没有,请参阅以下有关更改振铃器模式的代码。