Ant*_*neG 6 java android bluetooth serversocket
我被一位教授挑战在Android上开发一个小型蓝牙演示应用程序.直到两周前,当他给我这个挑战时,我对Android的开发一无所知.我对Java编程也很陌生,所以我从远处开始.但无论如何...
所以我做了大部分的教程,我读到了Android中的蓝牙,查看了蓝牙聊天示例代码,我现在正在尝试做我的小应用程序.因此,对于我的演示,我将尝试在我的真实手机和蓝牙鼠标之间建立连接.我想在我的手机屏幕上移动一个形状以响应我的鼠标移动.
我遇到很多问题,但到目前为止我的主要问题是用不安全的鼠标打开一个插座.当我尝试使用该方法时listenUsingRfcommWithServiceRecord,它会将UUID作为参数.但是我的鼠标很可能没有UUID来响应,所以我猜这种方法并不好.
当我阅读有关此方法的文档时,它说要使用像鼠标这样的设备打开不安全的服务器套接字,我必须使用该listenUsingInsecureRfcommWithServiceRecord方法.但是当我调用它时,这个方法是不可用的,它以红色加下划线,而Eclipse表示它对于BluetoothAdapter类型是未定义的.
private BluetoothServerSocket connectDevice(BluetoothAdapter adapter, BluetoothDevice device){
BluetoothServerSocket socket = null;
try{
socket = adapter.listenUsingInsecureRfcommWithServiceRecord(device.getName(), UUID.randomUUID());
}
catch(IOException e){
Toast.makeText(this, "Connection failed.\n" + e.getMessage(), Toast.LENGTH_SHORT);
}
return socket;
}
Run Code Online (Sandbox Code Playgroud)
如果我做错了,请不要激怒我,这是我的第一个问题,我开始使用Java编程.
listenUsingInsecureRfcommWithServiceRecord()
Run Code Online (Sandbox Code Playgroud)
这仅适用于 API Level 10 及更高版本,即 Android v2.3.3 及以上版本。
如果您正在构建之前的版本,这可能就是问题所在。
请参阅文档中灰色条的右侧
编辑:鉴于不可能扩展蓝牙适配器,listenUsingInsecureRfcommWithServiceRecord()只需这样做......
return createNewRfcommSocketAndRecord(name, uuid, false, false);
Run Code Online (Sandbox Code Playgroud)
createNewRfcommSocketAndRecord() 的源代码(这是BluetoothAdapter 的私有方法),可以在这里找到... createNewRfcommSocketAndRecord
不确定是否有帮助,但您也许能够重现其功能。