对于我的Windows Phone 8.1 RT应用程序,我需要检测是否已插入耳机。
我发现这些问题可以解决Windows Phone 8.0和Windows Phone 8.1 Silverlight应用程序的这个问题: Windows Phone - Audio Endpoint Device
它在我的主视图的代码隐藏中尝试了此代码(实际上是从http://developer.nokia.com/community/wiki/How_to_detect_the_audio_path_(headset_connection)_on_Windows_Phone复制的):
AudioRoutingEndpoint currentAudioRoutingEndpoint = AudioRoutingManager.GetDefault().GetAudioEndpoint();
AudioRoutingManager.GetDefault().AudioEndpointChanged += AudioEndpointChanged_Handler;
和处理程序:
private void AudioEndpointChanged_Handler(AudioRoutingManager sender, object args)
{
var audioEndPoint = sender.GetAudioEndpoint();
switch (audioEndPoint)
{
case AudioRoutingEndpoint.Default:
{
//default audio devide
break;
}
case AudioRoutingEndpoint.Earpiece:
{
//Earpiece
break;
}
case AudioRoutingEndpoint.Speakerphone:
{
//Speakerphone
break;
}
case AudioRoutingEndpoint.Bluetooth:
{
//Bluetooth
break;
}
case AudioRoutingEndpoint.WiredHeadset:
{
//WiredHeadset
break;
}
case AudioRoutingEndpoint.WiredHeadsetSpeakerOnly:
{
//WiredHeadsetSpeakerOnly
break;
}
case AudioRoutingEndpoint.BluetoothWithNoiseAndEchoCancellation:
{
//BluetoothWithNoiseAndEchoCancellation
break;
}
default:
throw new ArgumentOutOfRangeException();
}
}
如果我运行此代码,我会收到此异常: 用户代码HResult = -2147024891未处理System.UnauthorizedAccessException 消息=访问被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))
我想这是因为缺少所需的功能(ID_CAP_VOIP和ID_CAP_AUDIOROUTING)。
现在我的问题是,在我的Windows Phone 8.1 RT应用程序中只有package.appxmanifest
而没有WMAppManifest.xml
,似乎我无法再定义这些功能。
请注意,我的项目中没有WMAppManifest.xml
,因为它将出现在Windows Phone 8.1 Silverlight项目中(实际上两者都可用)。
我真的很感激任何帮助!
编辑:将Windows Phone 8.1 xaml更改为Windows Phone 8.1 RT
答案 0 :(得分:1)
所以有两件事:
所以..你可能无法在Windows Phone上做你想做的事情(除非你正在构建一个VOIP应用程序)。
您尝试使用此功能实现了哪些功能?也许有另一种选择。
答案 1 :(得分:1)
在WP8.1运行时,您可以使用以下代码创建一个xml文件WindowsPhoneReserveAppInfo.xml:
<?xml version="1.0" encoding="utf-8" ?>
<WindowsPhoneReservedAppInfo xmlns="http://schemas.microsoft.com/phone/2013/windowsphonereservedappinfo">
<SoftwareCapabilities>
<SoftwareCapability Id="ID_CAP_VOIP" />
</SoftwareCapabilities>
</WindowsPhoneReservedAppInfo>
工作正常。祝你好运!