android.media.AudioManager#isWiredHeadsetOn ( )源码实例Demo

下面列出了android.media.AudioManager#isWiredHeadsetOn ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Easer   文件: HeadsetTracker.java
HeadsetTracker(Context context, HeadsetUSourceData data,
               @NonNull PendingIntent event_positive,
               @NonNull PendingIntent event_negative) {
    super(context, data, event_positive, event_negative);

    boolean plugged_in = false;
    Boolean has_microphone = null;

    AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
        AudioDeviceInfo[] audioDevices = audioManager.getDevices(AudioManager.GET_DEVICES_ALL);
        for (AudioDeviceInfo deviceInfo : audioDevices) {
            if (deviceInfo.getType() == AudioDeviceInfo.TYPE_WIRED_HEADPHONES
                    || deviceInfo.getType() == AudioDeviceInfo.TYPE_WIRED_HEADSET) {
                plugged_in = true;
                has_microphone = deviceInfo.isSource();
            }
        }
    } else {
        plugged_in = audioManager.isWiredHeadsetOn();
    }
    Boolean match = determine_match(data, plugged_in, has_microphone);
    newSatisfiedState(match);
}
 
源代码2 项目: UCDLive_Android   文件: URawAudioMixFilter.java
public URawAudioMixFilter(Context context, Mode mixMode, boolean isLooper) {
    this.context = context;
    this.isLooper = isLooper;
    this.mixMode = mixMode;
    headsetPlugReceiver = new HeadsetPlugReceiver();
    IntentFilter  filter = new IntentFilter();
    filter.addAction(Intent.ACTION_HEADSET_PLUG);
    this.context.registerReceiver(headsetPlugReceiver, filter);
    if (mixMode == Mode.JUST_HEADSET_ON) {
        AudioManager audioManager = (AudioManager) this.context.getSystemService(Context.AUDIO_SERVICE);
        isMixBgm = audioManager.isWiredHeadsetOn();
    }
    else {
        isMixBgm = true;
    }
}
 
源代码3 项目: respoke-sdk-android   文件: RespokeCall.java
private void addLocalStreams(Context context) {
    AudioManager audioManager = ((AudioManager) context.getSystemService(Context.AUDIO_SERVICE));
    // TODO(fischman): figure out how to do this Right(tm) and remove the suppression.
    @SuppressWarnings("deprecation")
    boolean isWiredHeadsetOn = audioManager.isWiredHeadsetOn();
    audioManager.setMode(isWiredHeadsetOn ? AudioManager.MODE_IN_CALL : AudioManager.MODE_IN_COMMUNICATION);
    audioManager.setSpeakerphoneOn(!isWiredHeadsetOn);

    localStream = peerConnectionFactory.createLocalMediaStream("ARDAMS");

    if (!audioOnly) {
        VideoCapturer capturer = getVideoCapturer();
        MediaConstraints videoConstraints = new MediaConstraints();
        videoSource = peerConnectionFactory.createVideoSource(capturer, videoConstraints);
        VideoTrack videoTrack = peerConnectionFactory.createVideoTrack("ARDAMSv0", videoSource);
        videoTrack.addRenderer(new VideoRenderer(localRender));
        localStream.addTrack(videoTrack);
    }

    localStream.addTrack(peerConnectionFactory.createAudioTrack("ARDAMSa0", peerConnectionFactory.createAudioSource(new MediaConstraints())));

    peerConnection.addStream(localStream);
}
 
源代码4 项目: mollyim-android   文件: WebRtcCallService.java
private LockManager.PhoneState getInCallPhoneState() {
  AudioManager audioManager = ServiceUtil.getAudioManager(this);
  if (audioManager.isSpeakerphoneOn() || audioManager.isBluetoothScoOn() || audioManager.isWiredHeadsetOn()) {
    return LockManager.PhoneState.IN_HANDS_FREE_CALL;
  } else {
    return LockManager.PhoneState.IN_CALL;
  }
}
 
源代码5 项目: mollyim-android   文件: SignalAudioManager.java
public void startIncomingRinger(@Nullable Uri ringtoneUri, boolean vibrate) {
  AudioManager audioManager = ServiceUtil.getAudioManager(context);
  boolean      speaker      = !audioManager.isWiredHeadsetOn() && !audioManager.isBluetoothScoOn();

  audioManager.setMode(AudioManager.MODE_RINGTONE);
  audioManager.setMicrophoneMute(false);
  audioManager.setSpeakerphoneOn(speaker);

  incomingRinger.start(ringtoneUri, vibrate);
}
 
源代码6 项目: bcm-android   文件: SignalAudioManager.java
public void startIncomingRinger() {
  AudioManager audioManager = AppUtil.INSTANCE.getAudioManager(context);
  boolean      speaker      = !audioManager.isWiredHeadsetOn() && !audioManager.isBluetoothScoOn();

  audioManager.setMode(AudioManager.MODE_RINGTONE);
  audioManager.setMicrophoneMute(false);
  audioManager.setSpeakerphoneOn(speaker);

  incomingRinger.start();
}
 
源代码7 项目: DevUtils   文件: AudioManagerUtils.java
/**
 * 判断是否插入了耳机
 * @return {@code true} yes, {@code false} no
 */
public static boolean isWiredHeadsetOn() {
    AudioManager audioManager = AppUtils.getAudioManager();
    if (audioManager != null) {
        try {
            return audioManager.isWiredHeadsetOn();
        } catch (Exception e) {
            LogPrintUtils.eTag(TAG, e, "isWiredHeadsetOn");
        }
    }
    return false;
}
 
源代码8 项目: unity-ads-android   文件: Device.java
@SuppressWarnings("deprecation")
public static boolean isWiredHeadsetOn() {
	if (ClientProperties.getApplicationContext() != null) {
		AudioManager am = (AudioManager)ClientProperties.getApplicationContext().getSystemService(Context.AUDIO_SERVICE);

		// Note: This method is officially deprecated but documentation gives more fine-grained approach. This method
		// returns whether headset is connected or not. Audio playback might be routed through other means. Since we are
		// not using this value for making audio routing decisions, using this is ok and supported by Android docs.
		return am.isWiredHeadsetOn();
	}

	return false;
}
 
源代码9 项目: aurora-imui   文件: ReactMsgListManager.java
@Override
public void onSensorChanged(SensorEvent event) {
    AudioManager audioManager = (AudioManager) mContext.getSystemService(AUDIO_SERVICE);
    try {
        if (audioManager.isBluetoothA2dpOn() || audioManager.isWiredHeadsetOn()) {
            return;
        }
        if (mAdapter.getMediaPlayer().isPlaying()) {
            float distance = event.values[0];
            if (distance >= mSensor.getMaximumRange()) {
                mAdapter.setAudioPlayByEarPhone(0);
                setScreenOn();
            } else {
                mAdapter.setAudioPlayByEarPhone(2);
                ViewHolderController.getInstance().replayVoice();
                setScreenOff();
            }
        } else {
            if (mWakeLock != null && mWakeLock.isHeld()) {
                mWakeLock.release();
                mWakeLock = null;
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

}
 
源代码10 项目: aurora-imui   文件: MessageListActivity.java
@Override
public void onSensorChanged(SensorEvent event) {
    AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
    try {
        if (audioManager.isBluetoothA2dpOn() || audioManager.isWiredHeadsetOn()) {
            return;
        }
        if (mAdapter.getMediaPlayer().isPlaying()) {
            float distance = event.values[0];
            if (distance >= mSensor.getMaximumRange()) {
                mAdapter.setAudioPlayByEarPhone(0);
                setScreenOn();
            } else {
                mAdapter.setAudioPlayByEarPhone(2);
                ViewHolderController.getInstance().replayVoice();
                setScreenOff();
            }
        } else {
            if (mWakeLock != null && mWakeLock.isHeld()) {
                mWakeLock.release();
                mWakeLock = null;
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

}
 
源代码11 项目: FamilyChat   文件: HxCallBaseActivity.java
@Override
protected void beforeInitUI(Bundle savedInstanceState)
{
    super.beforeInitUI(savedInstanceState);
    //获取音频管理器
    mAudioMgr = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
    mAudioMgr.setSpeakerphoneOn(false);
    if (mAudioMgr.isWiredHeadsetOn())//耳机模式下设置Mode为Communication,否则设置为Ringtong
        mAudioMgr.setMode(AudioManager.MODE_IN_COMMUNICATION);
    else
        mAudioMgr.setMode(AudioManager.MODE_RINGTONE);
    //获取震动管理器
    mVibratorMgr = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
}
 
源代码12 项目: Augendiagnose   文件: AudioUtil.java
/**
 * Check if a headset is plugged.
 *
 * @return true if a headset is plugged.
 */
@SuppressWarnings("deprecation")
public static boolean isHeadphonePlugged() {
	AudioManager audioManager = (AudioManager) Application.getAppContext().getSystemService(Context.AUDIO_SERVICE);
	//noinspection deprecation
	return audioManager.isWiredHeadsetOn();
}
 
源代码13 项目: mollyim-android   文件: WebRtcCallService.java
private void handleSetEnableVideo(Intent intent) {
  boolean      enable       = intent.getBooleanExtra(EXTRA_ENABLE, false);
  AudioManager audioManager = ServiceUtil.getAudioManager(this);

  if (activePeer == null) {
    Log.w(TAG, "handleSetEnableVideo(): Ignoring for inactive call.");
    return;
  }

  Log.i(TAG, "handleSetEnableVideo(): call_id: " + activePeer.getCallId());

  if (activePeer.getState() != CallState.CONNECTED) {
    enableVideoOnCreate = enable;

    if (enableVideoOnCreate              &&
        !audioManager.isSpeakerphoneOn() &&
        !audioManager.isBluetoothScoOn() &&
        !audioManager.isWiredHeadsetOn())
    {
      audioManager.setSpeakerphoneOn(true);
    }

    return;
  }

  try {
    callManager.setVideoEnable(enable);
  } catch  (CallException e) {
    callFailure("setVideoEnable() failed: ", e);
    return;
  }

  localCameraState = camera.getCameraState();

  if (localCameraState.isEnabled()) {
    lockManager.updatePhoneState(LockManager.PhoneState.IN_VIDEO);
  } else {
    lockManager.updatePhoneState(getInCallPhoneState());
  }

  if (localCameraState.isEnabled() &&
      !audioManager.isSpeakerphoneOn() &&
      !audioManager.isBluetoothScoOn() &&
      !audioManager.isWiredHeadsetOn())
  {
    audioManager.setSpeakerphoneOn(true);
  }

  sendMessage(viewModelStateFor(activePeer), activePeer, localCameraState, remoteVideoEnabled, bluetoothAvailable, microphoneEnabled, isRemoteVideoOffer);
}
 
源代码14 项目: your-local-weather   文件: WeatherByVoiceService.java
private Long isAnySettingValidToTellWeather(Long voiceSettingId, boolean initiatedFromBtDevice) {
    AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    if (isActiveCall(audioManager)) {
        appendLog(getBaseContext(), TAG, "There is active phone call, not going to say anything");
        return null;
    }

    if (initiatedFromBtDevice) {
        appendLog(getBaseContext(), TAG, "Initiated from BT device, ommitin the rest of the settings");
        return voiceSettingId;
    }

    boolean isHeadsetConnected = audioManager.isWiredHeadsetOn();
    boolean isBluetoothConnected = Utils.isBluetoothHeadsetEnabledConnected(getBaseContext());

    VoiceSettingParametersDbHelper voiceSettingParametersDbHelper = VoiceSettingParametersDbHelper.getInstance(getBaseContext());
    Map<Long, Long> enabledVoiceDevices = voiceSettingParametersDbHelper.getLongParam(
            VoiceSettingParamType.VOICE_SETTING_ENABLED_VOICE_DEVICES.getVoiceSettingParamTypeId());
    appendLog(getBaseContext(), TAG, "isAnySettingValidToTellWeather enabledVoiceDevices: " + enabledVoiceDevices);
    if (enabledVoiceDevices == null) {
        appendLog(getBaseContext(), TAG, "Bluetooth or wired headset is not enabled or connected");
        return null;
    }
    appendLog(getBaseContext(), TAG, "isAnySettingValidToTellWeather voiceSettingId: " + voiceSettingId);
    if (voiceSettingId != null) {
        if (TimeUtils.isCurrentSettingIndex(enabledVoiceDevices.get(voiceSettingId), 2)) {
            appendLog(getBaseContext(), TAG, "speaker_enabled");
            return !(isBluetoothConnected || isHeadsetConnected)? voiceSettingId : null;
        }
        if (TimeUtils.isCurrentSettingIndex(enabledVoiceDevices.get(voiceSettingId), 1)) {
            appendLog(getBaseContext(), TAG, "wired_enabled");
            return isHeadsetConnected ? voiceSettingId : null;
        }
        if (TimeUtils.isCurrentSettingIndex(enabledVoiceDevices.get(voiceSettingId), 0)) {
            appendLog(getBaseContext(), TAG, "bt_enabled");
            return (isBluetoothConnected && isBtDeviceEnabled(voiceSettingId)) ? voiceSettingId : null;
        }
    } else {
        for (Long currentVoiceSettingId : enabledVoiceDevices.keySet()) {
            Long enabledVoiceDevice = enabledVoiceDevices.get(currentVoiceSettingId);
            appendLog(getBaseContext(), TAG, "isAnySettingValidToTellWeather enabledVoiceDevice: " + enabledVoiceDevice);
            if (TimeUtils.isCurrentSettingIndex(enabledVoiceDevice, 2)) {
                appendLog(getBaseContext(), TAG, "speaker_enabled");
                return !(isBluetoothConnected || isHeadsetConnected)? currentVoiceSettingId : null;
            }
            if (TimeUtils.isCurrentSettingIndex(enabledVoiceDevice, 1)) {
                appendLog(getBaseContext(), TAG, "wired_enabled");
                return isHeadsetConnected ? currentVoiceSettingId : null;
            }
            if (TimeUtils.isCurrentSettingIndex(enabledVoiceDevice, 0)) {
                appendLog(getBaseContext(), TAG, "bt_enabled");
                return (isBluetoothConnected && isBtDeviceEnabled(currentVoiceSettingId)) ? currentVoiceSettingId : null;
            }
        }
    }
    return null;
}
 
源代码15 项目: PHONK   文件: PMedia.java
public boolean isHeadsetPlugged() {
    AudioManager audioManager = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
    return audioManager.isWiredHeadsetOn();
}
 
源代码16 项目: iGap-Android   文件: ActivityCallViewModel.java
public void playRingtone() {
    boolean canPlay = false;
    AudioManager am = (AudioManager) G.context.getSystemService(Context.AUDIO_SERVICE);

    switch (am.getRingerMode()) {
        case AudioManager.RINGER_MODE_SILENT:
            canPlay = false;
            break;
        case AudioManager.RINGER_MODE_VIBRATE:
            canPlay = false;

            vibrator = (Vibrator) G.context.getSystemService(Context.VIBRATOR_SERVICE);
            long[] pattern = {0, 100, 1000};
            vibrator.vibrate(pattern, 0);

            break;
        case AudioManager.RINGER_MODE_NORMAL:
            canPlay = true;
            break;
    }

    if (am.isWiredHeadsetOn()) {
        canPlay = true;
    }

    if (canPlay) {

        try {
            Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
            String path = AttachFile.getFilePathFromUri(alert);

            ringtonePlayer = new MediaPlayer();

            if (path == null) {
                ringtonePlayer.setDataSource(context, Uri.parse("android.resource://" + G.context.getPackageName() + "/" + R.raw.tone));
            } else {
                ringtonePlayer.setDataSource(G.context, alert);
            }

            if (am.isWiredHeadsetOn()) {
                ringtonePlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
            } else {
                ringtonePlayer.setAudioStreamType(AudioManager.STREAM_RING);
            }

            ringtonePlayer.setLooping(true);
            ringtonePlayer.prepare();
            ringtonePlayer.start();
        } catch (Exception e) {
            HelperLog.setErrorLog("activity call view model   set ringtone uri  " + e);
        }
    }

    startRingAnimation();
}
 
源代码17 项目: voip_android   文件: VOIPActivity.java
private boolean getHeadphoneStatus() {
    AudioManager audioManager = (AudioManager)getSystemService(AUDIO_SERVICE);
    boolean headphone = audioManager.isWiredHeadsetOn() || audioManager.isBluetoothA2dpOn();
    return headphone;
}
 
源代码18 项目: react-native-device-info   文件: RNDeviceModule.java
@ReactMethod(isBlockingSynchronousMethod = true)
public boolean isHeadphonesConnectedSync() {
  AudioManager audioManager = (AudioManager)getReactApplicationContext().getSystemService(Context.AUDIO_SERVICE);
  return audioManager.isWiredHeadsetOn() || audioManager.isBluetoothA2dpOn();
}
 
源代码19 项目: droidkit-webrtc   文件: AppRTCDemoActivity.java
@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  Thread.setDefaultUncaughtExceptionHandler(
      new UnhandledExceptionHandler(this));

  getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
  getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

  Point displaySize = new Point();
  getWindowManager().getDefaultDisplay().getRealSize(displaySize);

  vsv = new AppRTCGLView(this, displaySize);
  VideoRendererGui.setView(vsv);
  remoteRender = VideoRendererGui.create(0, 0, 100, 100);
  localRender = VideoRendererGui.create(70, 5, 25, 25);

  vsv.setOnClickListener(new View.OnClickListener() {
      @Override public void onClick(View v) {
        toggleHUD();
      }
    });
  setContentView(vsv);
  logAndToast("Tap the screen to toggle stats visibility");

  hudView = new TextView(this);
  hudView.setTextColor(Color.BLACK);
  hudView.setBackgroundColor(Color.WHITE);
  hudView.setAlpha(0.4f);
  hudView.setTextSize(TypedValue.COMPLEX_UNIT_PT, 5);
  hudView.setVisibility(View.INVISIBLE);
  addContentView(hudView, hudLayout);

  if (!factoryStaticInitialized) {
    abortUnless(PeerConnectionFactory.initializeAndroidGlobals(
        this, true, true),
      "Failed to initializeAndroidGlobals");
    factoryStaticInitialized = true;
  }

  AudioManager audioManager =
      ((AudioManager) getSystemService(AUDIO_SERVICE));
  // TODO(fischman): figure out how to do this Right(tm) and remove the
  // suppression.
  @SuppressWarnings("deprecation")
  boolean isWiredHeadsetOn = audioManager.isWiredHeadsetOn();
  audioManager.setMode(isWiredHeadsetOn ?
      AudioManager.MODE_IN_CALL : AudioManager.MODE_IN_COMMUNICATION);
  audioManager.setSpeakerphoneOn(!isWiredHeadsetOn);

  sdpMediaConstraints = new MediaConstraints();
  sdpMediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair(
      "OfferToReceiveAudio", "true"));
  sdpMediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair(
      "OfferToReceiveVideo", "true"));

  final Intent intent = getIntent();
  if ("android.intent.action.VIEW".equals(intent.getAction())) {
    connectToRoom(intent.getData().toString());
    return;
  }
  showGetRoomUI();
}
 
源代码20 项目: sealrtc-android   文件: BluetoothUtil.java
/**
 * 是否插入了有线耳机
 *
 * @param context
 * @return
 */
public static boolean isWiredHeadsetOn(Context context) {
    AudioManager audioManager = (AudioManager) context.getSystemService(AUDIO_SERVICE);
    return audioManager.isWiredHeadsetOn();
}