如何检测我通过蓝牙连接从一台设备发送到另一台设备的消息
Posted
技术标签:
【中文标题】如何检测我通过蓝牙连接从一台设备发送到另一台设备的消息【英文标题】:How to detect message that i send from one device to another with bluetoth connect 【发布时间】:2017-01-06 13:03:45 【问题描述】:我想从一台设备向另一台设备发送消息,我发送并 Toast 显示我的消息。我尝试这样做:
if(message.equals("mute"))
if(IsAudioOn)
IsAudioOn = false;
amanager.setStreamMute(AudioManager.STREAM_MUSIC, false); // for unmute
else
IsAudioOn = true;
amanager.setStreamMute(AudioManager.STREAM_MUSIC, true); //for mute
当他收到一条典型的消息时,他应该为设备指示他应该做什么,但这没有用,
以下是我尝试从一台设备控制另一台设备的一些方法:
public void sendMessage(String message)
if (bBluetooth)
bt.send(message, true);
else
wiFiP2pService.sendData(message);
这可行,我发送字符串 MESSAGE 并以 TOAST 方法显示在另一台设备上。
这是我的 dataReceiver 在第二台设备上
bt.setOnDataReceivedListener(new BluetoothSPP.OnDataReceivedListener()
public void onDataReceived(byte[] data, String message)
showToastMessage(message, 300);
AudioManager amanager=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
if(message.equals("MUTE"))
if(IsAudioOn)
IsAudioOn = false;
amanager.setStreamMute(AudioManager.STREAM_MUSIC, false); // for unmute
else
IsAudioOn = true;
amanager.setStreamMute(AudioManager.STREAM_MUSIC, true); //for mute
else if(message.equals("VOLUME DOWN"))
amanager.setStreamVolume(
AudioManager.STREAM_MUSIC,
amanager.getStreamMaxVolume(AudioManager.STREAM_MUSIC),
0);
);
如你所见,我尝试检测
message.equals("string")
但这不起作用,任何帮助表示赞赏..
【问题讨论】:
你在祝酒词中看到了什么? 你好。我看到我使用 ((MainActivity) getActivity()).sendMessage("MUTE"); 之类的方法从 ControlDevice 1st 发送的内容;在第二台设备上,我在 toast 中看到“MUTE” 调试一下,看看message.equals("MUTE") == true
是的,我从第二台设备获得了静音,并且我调试了 iff 并且一切都进入了。我认为静音/取消静音的方法很有效
您如何实际检查setStreamMute
是否有效?
【参考方案1】:
根据doc,setStreamMute
-
此方法应仅由替换音频设置的平台范围管理的应用程序或主要电话应用程序使用。
如果您需要将设备上的所有声音静音,请查看possible solutions 以了解该问题。
【讨论】:
以上是关于如何检测我通过蓝牙连接从一台设备发送到另一台设备的消息的主要内容,如果未能解决你的问题,请参考以下文章
XMPPFramework - 如何将图像从一台设备传输到另一台设备?
使用 Multipeer Connectivity wifi/蓝牙发送 UISlider 值