你能确定插入 iphone/ipad/ipod 耳机插孔的具体设备类型吗?

Posted

技术标签:

【中文标题】你能确定插入 iphone/ipad/ipod 耳机插孔的具体设备类型吗?【英文标题】:Can you determine the specific type of device plugged into headphone jack of iphone/ipad/ipod? 【发布时间】:2012-02-28 07:49:23 【问题描述】:

在使用 iPad 及其耳机插孔时,我注意到一些有趣的事情。

当我将 iPhone 耳塞式耳机插入 iPad 时,我可以更改耳机音量(使用 iPad 上的音量按钮)。如果我拔下耳塞并使用相同的耳机插孔插入外部扬声器,我可以再次将音量调节到不同的水平。如果我拔下扬声器,我可以重新插入耳塞。音量会自动变回我上次设置耳塞的音量。如果我有第三台设备插入耳机插孔(在我的情况下,我使用插入耳机插孔的 UniMag 信用卡刷卡器进行测试)iPad 会记住第三个音量。它似乎知道将哪个设备插入 iphone 插孔并将其设置为适当的音量。

这与我的预期相反。我希望耳机插孔有一个音量级别,而不管插入的是什么设备。

如果 iPad 可以确定哪个设备是哪个设备,这是否也适用于我的本机应用程序?我能否判断用户是否使用某些音频 API 将耳机、外部扬声器或 UniMag 信用卡刷卡设备插入耳机插孔并做出相应的行为?

另外,如果您知道 iPad 能够识别哪个设备是哪个设备背后的技术机制,那我也会很感兴趣。

我正在使用 ios5 的 iPad2 上进行测试。

【问题讨论】:

在我看来这需要私有 API。 【参考方案1】:

您可以为此目的使用 CoreAudio。我相信您也可以设置更改通知。更具体地说,您可以使用音频会话在 iOS 上执行此操作。您正在寻找的是路线更改。 https://developer.apple.com/library/ios/#documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Cookbook/Cookbook.html

【讨论】:

以上是关于你能确定插入 iphone/ipad/ipod 耳机插孔的具体设备类型吗?的主要内容,如果未能解决你的问题,请参考以下文章

iphone ipad ipod检测

iPhone / iPad / iPod 滑动事件 javascript

修复 iPhone/iPad/iPod 上的 CSS 悬停

检测 iPhone/iPad/iPod touch 的颜色?

检测 iPhone/iPad/iPod touch 的颜色?

获取iPhone/iPad/iPod Touch硬件版本