我正在做一些測試Intent.ACTION_HEADSET_PLUG
。ACTION_HEADSET_PLUG未記錄額外奇怪的「狀態」?
給予的事實,下面的代碼應該是誰給的答覆(從com.android.server.HeadsetObserver類2.2.1 R1)的一個:
private final void sendIntent(int headset, int headsetState, int prevHeadsetState, String headsetName) {
if ((headsetState & headset) != (prevHeadsetState & headset)) {
// Pack up the values and broadcast them to everyone
Intent intent = new Intent(Intent.ACTION_HEADSET_PLUG);
intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
int state = 0;
int microphone = 0;
if ((headset & HEADSETS_WITH_MIC) != 0) {
microphone = 1;
}
if ((headsetState & headset) != 0) {
state = 1;
}
intent.putExtra("state", state);
intent.putExtra("name", headsetName);
intent.putExtra("microphone", microphone);
if (LOG) Slog.v(TAG, "Intent.ACTION_HEADSET_PLUG: state: "+state+" name: "+headsetName+" mic: "+microphone);
// TODO: Should we require a permission?
ActivityManagerNative.broadcastStickyIntent(intent, null);
}
}
及文檔中他們說:狀態 - 0表示拔出,1表示插入。
我通過插入兩個不同的耳機奇怪得到兩個不同的狀態:
0 =拔出
1 =耳機和麥克風
2 =耳機沒有麥克風
問題是:國家2(二)從哪裏來?有人能夠啓發我嗎?
謝謝
你正在測試什麼設備?這可能是一個特定於設備的變化/ bug /無論如何。 – CommonsWare
HTC Desire Android版本2.2,不幸是我擁有的唯一物理設備。 – BrainCrash