gpt4 book ai didi

java - Android audioReceiver BroadcastReceiver (Android OS Bug)

转载 作者:行者123 更新时间:2023-11-30 08:54:08 25 4
gpt4 key购买 nike

我试图创建一个 audioReceiver 广播。允许我的用户仅在耳机插入插件时听音乐。

代码如下:

private BroadcastReceiver audioReceiver  = new BroadcastReceiver()
{ @Override
public void onReceive(Context context, Intent intent)
{ AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
headsetIsPluggedIn = (intent.getExtras().getInt("state")==1);
if(headsetIsPluggedIn) //plugged
{ Log.d("", "BroadcastReceiver - Unmute sound");
audio.setStreamMute(AudioManager.STREAM_MUSIC, false);
}
else //unplugged
{ Log.d("", "BroadcastReceiver - Mute sound");
audio.setStreamMute(AudioManager.STREAM_MUSIC, true);

// Inform user
Toast.makeText(DuplicatedPlayerActivity.this, "Please plug in your headset to enjoy the sound.", Toast.LENGTH_SHORT).show();
}
}
};



@Override
public void onResume() {
super.onResume();

if (HEADSET_ONLY) { registerReceiver(audioReceiver, new IntentFilter(Intent.ACTION_HEADSET_PLUG)); }

list

<receiver android:name="com.juno.brheadset.HeadsetStateReceiver">
<intent-filter>
<action android:name="android.intent.action.HEADSET_PLUG"/>
</intent-filter>
</receiver>

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

好的,这是有趣的部分。如果您重新启动设备,请运行我的应用程序。此功能将不起作用。

如果您至少将耳机插孔插入手机一次!退出我的应用程序,重新启动应用程序。该功能将正常工作,直到用户再次重启手机。

现在,为什么这个功能只有在用户插入电话插孔时才有效?

最佳答案

“现在,为什么这个功能只有在用户插入电话插孔时才有效?” --> 因为您已经在 Action 接收器“android.intent.action.HEADSET_PLUG”中编写了代码。您的代码只会在您收到 headset_plug 广播时执行。

关于java - Android audioReceiver BroadcastReceiver (Android OS Bug),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29532874/

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