我最近遇到了一些让我脱掉一半头发的东西。
我试图访问audioManager并设置这样的新模式:
mAudioManager.setMode(AudioManager.MODE_NORMAL);
由于某些原因,在那个时候,我不明白audioManager拒绝设置新模式。
经过一个小时的调试并尝试了我袖子里的所有内容后,我发现我从我应用程序的其他部分访问音频管理器,但是使用了Activity上下文,而没有使用Application上下文,是我以前用过的。
在获取AudioManager时,您似乎偷了"它可以从分配给它的其他上下文访问新的Context。
你会在答案中找到解决办法。
如果您认为这有帮助,请考虑投票给这位激励我的this。
答案 0 :(得分:0)
好吧,为了获得AudioManager,你需要一个Context。那样:
AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
确保您始终传递相同的上下文。
在我的情况下,我曾尝试同时使用应用程序和Activity上下文,因此实现这一点的一种方法是调用Activity中的应用程序(或者其他任何内容),如下所示:
AudioManager am = (AudioManager) getApplication().getSystemService(getApplication().AUDIO_SERVICE);
希望我能为这片海洋中的一些失落的人们提供帮助。