'MainActivity'不包含'SetVolumeControl'的定义



我正在尝试使手机的音量按钮自动更改媒体卷,而不是在我的应用中更改媒体音量。我发现您应该放这条线this.SetVolumeControlStream(Android.Media.Stream.Music);我试图在OnCreate方法中这样做,但它说Main Activity不包含SetVolumeControlStream的定义,也没有扩展方法。我意识到我可能在错误的地方写这条线,任何建议如何使这条线在我的应用中起作用?

using System;
using System.Collections.Generic;
using Android.App;
using Android.Content;
using Android.Content.PM;
using Android.OS;
using Android.Support.V7.App;
using Android.Widget;
using foosballv2s.Source.Activities.Adapters;
using foosballv2s.Source.Activities.Helpers;
using foosballv2s.Source.Entities;
using foosballv2s.Source.Services.FileIO;
using foosballv2s.Source.Services.FoosballWebService.Repository;
using Java.Interop;
using Xamarin.Forms;
using View = Android.Views.View;
using Android.Media;
namespace foosballv2s.Source.Activities
{
    /// <summary>
    /// Main activity for choosing the teams for the game
    /// </summary>
    [Activity(
        ConfigurationChanges = ConfigChanges.Orientation,
        ScreenOrientation = ScreenOrientation.Portrait
        )]
    public class MainActivity : AppCompatActivity
    {
        private AutoCompleteTextView firstTeamTextView, secondTeamTextView;
        private IO instance = new IO();
        private Game game;
        private TeamRepository teamRepository;

        protected override void OnCreate(Bundle savedInstanceState)
        {
            AudioManager audio = (AudioManager)GetSystemService(Context.AudioService);
            int currentVolume = audio.GetStreamVolume(Android.Media.Stream.Music);
            this.SetVolumeControlStream(Android.Media.Stream.Music);
            base.OnCreate(savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.Main);
            game = DependencyService.Get<Game>();
            teamRepository = DependencyService.Get<TeamRepository>();
            firstTeamTextView = (AutoCompleteTextView)FindViewById<AutoCompleteTextView>(Resource.Id.team1Name);
            secondTeamTextView = (AutoCompleteTextView)FindViewById<AutoCompleteTextView>(Resource.Id.team2Name);
            firstTeamTextView.ItemClick += AutoCompleteTextView_ItemClicked;
            secondTeamTextView.ItemClick += AutoCompleteTextView_ItemClicked;
            var btnP = FindViewById<Android.Widget.Button>(Resource.Id.prev);
            btnP.Click += BtnPrev_Click;
            //Window.SetBackgroundDrawable(Android.Resource.Id.);
            NavigationHelper.SetupNavigationListener(this);
            NavigationHelper.SetActionBarNavigationText(this, Resource.String.app_name);
        }

在Xamarin,Java Set*和GET*方法通常映射到C#属性。因此, SetVolumeControlStream()变成 VolumeControlStream带有getter和setter。

这是在API指南中记录的

[get: Android.Runtime.Register("getVolumeControlStream", "()I", "GetGetVolumeControlStreamHandler")]
[set: Android.Runtime.Register("setVolumeControlStream", "(I)V", "GetSetVolumeControlStream_IHandler")]
public Stream VolumeControlStream { get; set; }

最新更新