【发布时间】:2017-01-24 06:55:08
【问题描述】:
有没有办法区分android中不同类型的音频设备?例如,我从不同制造商那里获得了 A 型音频设备和 B 型音频设备,这两种设备都使用音频插孔。每当用户插入 A 型或 B 型音频设备时,我都想知道设备 ID 或名称、类型。我可以使用 BroadcastReceiver 检测插入/拔出的音频设备。但无法获取设备 ID 或名称或类型。场景为:音频设备类型A连接时启动服务A,音频设备类型B连接时启动服务B。
【问题讨论】:
有没有办法区分android中不同类型的音频设备?例如,我从不同制造商那里获得了 A 型音频设备和 B 型音频设备,这两种设备都使用音频插孔。每当用户插入 A 型或 B 型音频设备时,我都想知道设备 ID 或名称、类型。我可以使用 BroadcastReceiver 检测插入/拔出的音频设备。但无法获取设备 ID 或名称或类型。场景为:音频设备类型A连接时启动服务A,音频设备类型B连接时启动服务B。
【问题讨论】:
不,很遗憾,这是不可能的。音频插孔是一个纯粹的模拟标准,它只是不提供任何识别设备的方法。唯一可以识别的是它是耳机(没有麦克风)、耳机(有麦克风)还是线路输入(输入阻抗比耳机高)。后者的区别实际上并没有传达给应用程序,它只会影响 Android 进行音频路由和应用音量设置的方式。
对于 USB 和蓝牙设备,可以获得有关设备制造商和 ID 的信息,因此可以区分它们,但您需要使用比广播接收器更低级别的 API。请参阅 https://developer.android.com/guide/topics/connectivity/usb/host.html 和 https://developer.android.com/guide/topics/connectivity/bluetooth.html。
【讨论】: