isSpeakerphoneOn 在 Android 11 设备上停止工作

问题描述

在向三星推出最新的 Android 11 后,一直在与音频管理器苦苦挣扎。它已经顺利运行了几年,包括所有可能的 Android 10 及以下设备。

以下是我们获取音频管理器的方法

 function readxmlAndReturnjson(xmlFile) {
  const fs = require("fs");
  var parser = require('xml2json');
  var json = parser.toJson('');

  let xmlFileName = __dirname + "/data/" + xmlFile;

  fs.readFile(xmlFileName,'utf8',function(err,data) {
      var json = parser.toJson(data);
      //console.log("to json ->",json);
   }); 
   return json;
}

server.get("/api/standings/:teamId",(request,response) => {
  const { teamId } = request.params
  let standings = readxmlAndReturnjson(fileName);
  console.log(standings);
  response.json(standings);
});

以前是这样的:

val audioManager = activity?.getSystemService(Context.AUdio_SERVICE) as? AudioManager 

在单击“扬声器”按钮时,我们将扬声器的值更改为相反,并且扬声器完美地打开/关闭。这在 Android 11 上停止工作(特别是我们正在使用 OneUI 3.0 在三星 s10e 上进行测试)

我们还尝试在打开/关闭扬声器之前将模式更改为音频管理器,但没有成功。现在我们这样做:

audioManager?.let {
    it.isspeakerphoneOn = it.isspeakerphoneOn.not()
}

在这种情况下,它开始在我们的应用程序内部工作,而呼叫由 VoIP 提供商(例如 Zoiper)处理,而不是由三星在 Android 11 上的本机呼叫应用程序处理。

特别是对已经有两个搭载 Android 11 (OneUI 3.0) 的三星 galaxy s10e 进行了测试。

非常感谢任何帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)