我注册了一个BroadcastReceiver来接收ACTION_HEADSET_PLUG,它在大多数设备上都能正常工作(只要耳机被插上或拔掉就会被调用)。但在其他如中兴T815,意图从来没有发送/接收时,耳机是插头/拔出。
以下是接收方注册的代码,供参考:
private final BroadcastReceiver headsetPlugReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "Received intent=" + intent);
if (intent.getAction().equalsIgnoreCase(Intent.ACTION_HEADSET_PLUG)) {
// do stuff
}
}
};
public void onCreate(Bundle savedState) {
super.onCeate(savedState);
// ...
registerReceiver(headsetPlugReceiver, new IntentFilter(Intent.ACTION_HEADSET_PLUG));
}进一步的信息:意图是发送的,但只有在HEADSET_HOOK命令被发射到耳机之后。
当意图被发送时
final int microphone = intent.getIntExtra("microphone", 0);总是返回0(没有麦克风)。
所以
发布于 2015-03-05 00:56:13
事实证明,中兴通讯的T815有一个OMTP配置它的音频插座,而不是CTIA/AHJ,就像所有其他现代安卓设备。
请参阅%28audio%29
令人悲伤的事态,尤指试图跨产品使用音频输入时。
https://stackoverflow.com/questions/28619583
复制相似问题