Adds support for Bluetooth headsets to the iOS audio layer.
This patch also also ensures that audio is restored after an incoming
GSM call.
BUG=webrtc:5058, webrtc:5012
TEST=Manual tests using modified AppRTCDemo and three different BT headsets
Review URL: https://codereview.webrtc.org/1401963002
Cr-Commit-Position: refs/heads/master@{#10354}
diff --git a/webrtc/modules/utility/source/helpers_ios.mm b/webrtc/modules/utility/source/helpers_ios.mm
index d362530..90b7c8f 100644
--- a/webrtc/modules/utility/source/helpers_ios.mm
+++ b/webrtc/modules/utility/source/helpers_ios.mm
@@ -10,6 +10,7 @@
#if defined(WEBRTC_IOS)
+#import <AVFoundation/AVFoundation.h>
#import <Foundation/Foundation.h>
#import <sys/sysctl.h>
#import <UIKit/UIKit.h>
@@ -57,6 +58,11 @@
return StdStringFromNSString(name);
}
+std::string GetAudioSessionCategory() {
+ NSString* category = [[AVAudioSession sharedInstance] category];
+ return StdStringFromNSString(category);
+}
+
std::string GetSystemName() {
NSString* osName = [[UIDevice currentDevice] systemName];
return StdStringFromNSString(osName);
@@ -112,6 +118,10 @@
return std::string("iPhone 6 Plus");
if (!raw_name.compare("iPhone7,2"))
return std::string("iPhone 6");
+ if (!raw_name.compare("iPhone8,1"))
+ return std::string("iPhone 6s");
+ if (!raw_name.compare("iPhone8,2"))
+ return std::string("iPhone 6s Plus");
if (!raw_name.compare("iPod1,1"))
return std::string("iPod Touch 1G");
if (!raw_name.compare("iPod2,1"))
@@ -162,7 +172,7 @@
return std::string("Simulator");
if (!raw_name.compare("x86_64"))
return std::string("Simulator");
- LOG(LS_WARNING) << "Failed to find device name";
+ LOG(LS_WARNING) << "Failed to find device name (" << raw_name << ")";
return raw_name;
}