- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 Android 编程的新手,现在遇到了一个问题。我想将我的 android 手机用作蓝牙服务器,这意味着当我打开一个特殊的 Activity 时,手机应该监听其他蓝牙设备(已经配对)并且其他设备可以打开与我的 android 手机的连接。所以应该就像手机是一个周边设备一样,就像一个bt音箱。所以配对仍然完成。并且发现我必须使用 SPP 模式。当它连接时,我想发送一个接收简单的字节流。我找到了一个名为“bluetooth spp tools pro”(https://play.google.com/store/apps/details?id=mobi.dzs.android.BLE_SPP_PRO&hl=de)的应用程序,它几乎可以满足我的所有需求。但这里的问题是手机作为客户端并打开连接。
所以也许你可以帮助我并给我一些提示以了解我必须做什么。
感谢您的帮助:)
编辑:现在我尝试了一个来自 Android 的示例,它似乎几乎可以正常工作。我可以将我的电脑与智能手机连接,智能手机也可以与之连接。但是当它连接时,应用程序崩溃了,我不知道为什么......也许你可以告诉我为什么 ma 应用程序崩溃.. 这里是代码:
public class BluetoothServer extends AppCompatActivity {
public BluetoothAdapter mBluetoothAdapter;
private static final UUID MY_UUID_SECURE = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
private AcceptThread mSecureAcceptThread;
private TextView textViewStatus;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bluetooth_server);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
textViewStatus = (TextView) findViewById(R.id.BluetoothServerTextView);
}
@Override
protected void onDestroy() {
super.onDestroy();
mSecureAcceptThread.cancel();
mSecureAcceptThread = null;
}
public void onClickOpenBluetoothServer(View view) {
// Setup Bluetooth Adapter
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
//Enable Discoverbility
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
startActivity(discoverableIntent);
textViewStatus.append("\nDiscoverable Added!");
//Starting Accepting Thread
mSecureAcceptThread = new AcceptThread();
mSecureAcceptThread.start();
}
/**
* Accepting Thread mit run();
*/
private class AcceptThread extends Thread {
private final BluetoothServerSocket mmServerSocket;
public AcceptThread() {
BluetoothServerSocket tmp = null;
try {
// MY_UUID is the app's UUID string, also used by the client code
tmp = mBluetoothAdapter.listenUsingRfcommWithServiceRecord("PAKSAFE", MY_UUID_SECURE);
} catch (IOException e) { }
mmServerSocket = tmp;
textViewStatus.append("\nAcceptThread Created!");
}
public void run() {
BluetoothSocket socket = null;
// Keep listening until exception occurs or a socket is returned
while (true) {
try {
textViewStatus.append("\nListening");
socket = mmServerSocket.accept();
} catch (IOException e) {
break;
}
// If a connection was accepted
if (socket != null) {
// Do work to manage the connection (in a separate thread)
//manageConnectedSocket(socket);
textViewStatus.setText("Acccepted");
try {
mmServerSocket.close();
} catch (IOException e) {
break;
}
break;
}
}
}
/** Will cancel the listening socket, and cause the thread to finish */
public void cancel() {
try {
mmServerSocket.close();
} catch (IOException e) { }
}
}
最佳答案
创建一个 RFCOMM
套接字(也称为串行端口配置文件 (SPP))并监听传入数据。
Android 有一个 API为此,请使用 BluetoothServerSocket
并监听传入的数据。
可以找到 BluetoothServerSocket
用法的示例 here
关于Android 蓝牙 SPP 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36472060/
我已经使用基于 RFCOMM 和串行端口配置文件 (SPP) 的 MS 蓝牙套接字在我的 PC 和蓝牙设备之间建立了连接。 连续接收数据没有问题。但是,如果要发送一个字节(作为命令),设备不会接收到它
我们正在开发一款通过蓝牙使用 SPP(串行端口配置文件)的应用程序,开发人员正在讨论使用某种类型的协议(protocol)和数据包传输,还是仅在没有任何形式的 ACK、序列或大小信息的情况下流式传输数
我目前正在尝试构建一个库,以便在通用应用程序上使用串行端口配置文件 (SPP)。 据我所知,SPP 在 RFCOMM 之上运行。 RFCOMM 的基础知识在 MSDN 中进行了概述,这很好。我还能够“
如何通过蓝牙串行端口配置文件将数据从一台Mac发送到另一台Mac 情境 我正在寻找一种通过蓝牙将串行数据从一台Mac发送到另一台Mac的方法。串行通信已集成到许多创意编码平台(MaxMSP,Proce
我是 Android 开发的新手,除了无线连接两个设备外,我对蓝牙的真正工作原理一无所知。我一直在使用 BluetoothChat 示例,以及我购买的 Android 书籍中的示例。它们看起来非常相似
我有一个 SPP 蓝牙应用程序,问题出在这种情况下。android 设备已连接到蓝牙扬声器,当我尝试连接到我的 SPP Micro 设备时,出于同样的原因,蓝牙已连接。 我如何断开蓝牙扬声器与我的应用
不好意思 friend 打扰了。我是全职妈妈,是 Android 开发的新手,我把我们当作兼职工作。我有 Java 开发经验。 我试着查看那个蓝牙聊天示例,并在这里搜索了很多关于从哪里开始的信息。当我
我想开发一个 ios 应用程序,通过蓝牙 SPP 与另一个支持蓝牙的设备进行通信。 iOS 是否支持 SPP? 我检查了 iOS 支持的配置文件,但看不到有关 SPP 的任何信息.. http://s
我正在尝试使用 SPP 通过蓝牙(在 Java 中,使用 BlueCove API)在两台 PC 之间传输文件(MP3 大小约为 6 兆字节)。我可以使文件传输在一个方向上正常工作(例如,一个文件从客
我有一个带有板载蓝牙功能的嵌入式板。我的开发板运行 Linux,BlueZ 堆栈提供蓝牙支持。我可以访问所有 bluez 实用程序,例如 hciconfig、sdptool、rfcomm 等。 我需要
我有一个定制的蓝牙设备,我可以使用 Windows 10 与之配对和连接,它创建了 2 个 com 端口 - 一个列为传入端口,一个列为传出端口。 当我使用 32Feet C# 蓝牙库连接时,我能够发
我需要使用蓝牙 SPP 以 1.15k 的速率从远程蓝牙设备收集蓝牙数据。我按如下方式连接到远程设备。 try { tmp = device.createRfcommSocketToService
我有一些连接到 Android 手机的蓝牙设备,但我无法检测到断开连接。除非需要,否则蓝牙设备不会发送数据包,因此不能选择在数据包接收时使用看门狗来检测断开连接。我读过您可以使用 ACLDisconn
我们即将发布我们软件的新版本,对于之后的版本,我们的目标是使我们的蓝牙 SPP 连接的连接过程更加可靠。我们在我们的产品中使用 RN42 模块,目前,有时可能需要多次尝试才能连接到我们的电路板。 这是
我是 Android 编程的新手,现在遇到了一个问题。我想将我的 android 手机用作蓝牙服务器,这意味着当我打开一个特殊的 Activity 时,手机应该监听其他蓝牙设备(已经配对)并且其他设备
有人有 iOS 的 SPP 通信(蓝牙串口)示例代码吗?我需要在我的微芯片图片和 iphone 或 iPod 之间进行通信。 我知道我需要一个经过批准的苹果蓝牙 rs232BT 加密狗,我也有一些带有
我在尝试在我的项目中使用蓝牙时遇到问题。在以前的版本中,我使用 HC-05 蓝牙模块,它在连接任何设备后立即为我提供一个简单的串行连接。现在项目发展了,我们选择使用 SIM800H,因为它为我们提供了
我有一个相当简单的程序,主要基于此处发布的简单蓝牙测试客户端应用程序: http://www.anddev.org/code-snippets-for-android-f33/serial-over-
所以我在eclipse (API8) 上编译并成功运行了Android Bluetooth Chat 项目。 问题是,当我连接到我自己的嵌入式蓝牙设备 (http://www.sparkfun.com
我有一个使用蓝牙 SPP (RFCOMM) 与硬件通信的应用程序。该应用程序和蓝牙连接效果很好。问题是当另一个应用程序启动时也使用 SPP,然后其中一个应用程序停止。一旦任何一个应用程序停止,无论是通
我是一名优秀的程序员,十分优秀!