在本文档中,它是说:setStreamMute从未取消静音
静音指令是对客户端进程死亡保护:如果对流活动静音请求一个进程死亡,这个流将自动静音。
给定流的静音请求是累积的:AudioManager可以接收来自一个或多个客户端的多个静音请求,并且只有在接收到相同数量的取消静音请求时,流才会取消静音。
那么,第一段是真的;每当我的流程死亡时,我静音的所有流都会自动取消静音。 但是,无论我打电话多少次setStreamMute(someStream, false)
它永远不会取消静音。 我最后一次尝试将它调用超过100万次后,只有一次静音,没有任何事情发生!
只要提及 - 如果我用相同的方法取消静音,则将其静音 - 保持静音。但在接下来的调用相同的方法 - 它永远不会取消静音。
我在Broadcast Receiver onReceive方法中静音,我开始使用闹钟管理器。所以也许是因为我的应用程序在屏蔽呼叫和非屏蔽呼叫之间的时间内被杀害了? (但我的应用程序仍然在RAM保持)
这个问题可能是因为我没有保持一个参考AlarmManager(每次获得不同的实例?)
有没有人遇到这样的问题?
我正在使用Android 4.0版本和同样的问题在这里,看看http://stackoverflow.com/questions/14899395/how-to-mute-and-unmute-it-on-the-onpause- and-onresume –
保留对'AudioManager'的相同实例的引用(最好是作为您的活动类的成员) – Jong