Java 如何在Android上通话时静音电话通话流(上行)

Java 如何在Android上通话时静音电话通话流(上行),java,android,Java,Android,我从来没有问过问题——总是能找到东西,但这次我真的不知道,甚至不知道去哪里挖掘 我试图静音传入的上行流(同时呼叫smb),并在此时通过电话呼叫扬声器播放声音 播放声音没有问题,但静音流,这是这里是我尝试过的: 1)调用Android电话内部类方法的Java反射 以下是作者博客(圣保罗): 和他的小部件: 我曾试图修改ITelephony.aidl中的注释功能,使调用流静音,但没有成功-“没有这样的过程…” 2)通过AudioManager进入流媒体 audioManager.setStreamM

我从来没有问过问题——总是能找到东西,但这次我真的不知道,甚至不知道去哪里挖掘

我试图静音传入的上行流(同时呼叫smb),并在此时通过电话呼叫扬声器播放声音

播放声音没有问题,但静音流,这是这里是我尝试过的:

1)调用Android电话内部类方法的Java反射

以下是作者博客(圣保罗): 和他的小部件:

我曾试图修改ITelephony.aidl中的注释功能,使调用流静音,但没有成功-“没有这样的过程…”

2)通过AudioManager进入流媒体

audioManager.setStreamMute(AudioManager.STREAM_SYSTEM, true);
audioManager.setStreamMute(AudioManager.STREAM_VOICE_CALL, true);
audioManager.setStreamMute(AudioManager.STREAM_DTMF, true);
audioManager.setStreamMute(AudioManager.STREAM_ALARM, true);
audioManager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true);
audioManager.setStreamMute(AudioManager.STREAM_RING, true);

这对上行呼叫流没有任何作用。甚至在电话上

3)网上很少有关于实现隐藏API的文章和jar。没有文章回答如何静音电话流

有很多应用程序使用了一些未记录的功能和需要root访问的功能。我真的很想知道人们是如何发现这些隐藏的功能以及如何使用它们的。 我还没有找到任何一个可以使流静音的

Android版本:2.2

设备:三星i5500

如果你有任何想法如何实现静音电话-请回答


p.S.:如果在标准手机上无法使用Subc,请说明如何使用root访问来实现这一点

您想澄清一下“传入上行流”是什么意思吗?我本以为“上行链路”是指电话到基站的方向,但传入意味着目的地是电话。也许您的意思是这是一个传入呼叫(其他人呼叫用户的Android手机),您对静音上行流感兴趣(例如,关闭麦克风或以其他方式确保呼叫者听不到用户的声音;即,静音从本地用户到呼叫者的音频通道)。这就是我的想法吗?你在android清单中是否授予了访问音频设备的权限?@Prabhupabhakaran我授予了修改音频设置和处理传出呼叫的权限。您所说的“访问音频设备的权限”是什么意思?@D.W.不,这个想法是让来电流静音。您能这样试试吗<代码>AudioManager.setMode(AudioManager.MODE_在_调用中);AudioManager.setStreamSolo(AudioManager.STREAM_VOICE_CALL,true)然后稍后通过
AudioManager.setStreamSolo(AudioManager.STREAM\u VOICE\u CALL,false)将其删除;AudioManager.setMode(AudioManager.MODE_正常)
audioManager.setStreamSolo(AudioManager.STREAM_MUSIC, true);