gpt4 book ai didi

android - 如何在 android Pie 和 UP 中以编程方式打开/关闭扬声器

转载 作者:行者123 更新时间:2023-12-04 12:56:43 24 4
gpt4 key购买 nike

与这个问题以及几年前的许多其他问题相同:
how to turn speaker on/off programmatically in android 4.0

似乎Android已经改变了它处理这个问题的方式。

以下是我尝试以编程方式调用电话以使用免提电话的方式。这些解决方案都不适用于 Android Pie。
虽然它们似乎在 Android Nougat 和 Oreo 上运行良好

解决方案 1。

final static int FOR_MEDIA = 1;
final static int FORCE_NONE = 0;
final static int FORCE_SPEAKER = 1;

Class audioSystemClass = Class.forName("android.media.AudioSystem");
Method setForceUse = audioSystemClass.getMethod("setForceUse", int.class, int.class);
setForceUse.invoke(null, FOR_MEDIA, FORCE_SPEAKER);

2.
AudioManager audioManager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
if (audioManager != null) {
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
audioManager.setSpeakerphoneOn(true);

3.
AudioManager audioManager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
if (audioManager != null) {
audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);

4.
Thread thread = new Thread() {
@Override
public void run() {
try {
while(true) {
sleep(1000);
audioManager.setMode(AudioManager.MODE_IN_CALL);
if (!audioManager.isSpeakerphoneOn())
audioManager.setSpeakerphoneOn(true);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
thread.start();

该应用程序具有以下许多权限:
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />

我还尝试了以下仅用于拨出电话的解决方案。它也没有用。
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.putExtra("speaker", true);
callIntent.setData(Uri.parse("tel:" + number));
context.startActivity(callIntent);

最佳答案

在 Android Pie 中,我遇到了同样的问题。我使用 InCallService 解决了它和

setAudioRoute(ROUTE_SPEAKER)

您的应用需要是默认手机应用。

关于android - 如何在 android Pie 和 UP 中以编程方式打开/关闭扬声器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56426857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com