我正在尝试使手机的音量按钮自动更改媒体卷,而不是在我的应用中更改媒体音量。我发现您应该放这条线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; }