扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
try { MapString, String myMap= new HashMapString, String(); myMap.put("location",BNET_SOAP_URL); myMap.put("uri",BNET_SOAP_NAMESPACE); myMap.put("trace","1"); myMap.put("exceptions","1"); SoapClient bnet_client = new SoapClient(null,myMap); } catch (Exception exc) { throw new Exception(bnet_streamingno,null,exc,EXCEPTION_CONNECT_FAILURE) } 1 SoapClient方法你要自己先实现 2 Exception 参数要你自己再修改
成都创新互联公司主营霞山网站建设的网络公司,主营网站建设方案,app软件定制开发,霞山h5成都微信小程序搭建,霞山网站营销推广欢迎霞山等地区企业咨询
我正在开发一个应用程序有连接到蓝牙设备的 Android 4.3。
我可以连接到 BLE 设备和从设备中读取 RSSI,通过使用 BluetoothGatt.readRemoteRssi()。
我想要读的多个设备一次我已连接,但我可以只读 BLE RSSI 设备 RSSI 的最后一次,我连接的设备。
如果有两个 BLE 设备 A 和 B。我连接到A 的设备,并读取该 RSSI。之后,我连接到B 的设备,和我可以从设备 B读取 RSSI。但它并不读取设备 A的 RSSI,它只能从设备 B读取 RSSI。
在Main.java ,它列出已连接的位置的所有设备。
当我单击该设备,在列表上,它把传送的设备的名称和地址到DeviceControl.java。
final Intent qintent = new Intent(this, DeviceControl.class);
devicelist.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView? arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
HashMapString, Object select = (HashMapString, Object) devicelist.getItemAtPosition(arg2);
String name = (String) select.get(“name”);
String address = (String) select.get(“address”);
qintent.putExtra(DeviceControl.EXTRAS_DEVICE_NAME, name);
qintent.putExtra(DeviceControl.EXTRAS_DEVICE_ADDRESS, address);
startActivity(qintent);
}
});
DeviceControl.java将调用BluetoothLeService.java和连接到设备。
private final ServiceConnection mServiceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder service) {
// TODO Auto-generated method stub
mBluetoothLeService = ((BluetoothLeService.LocalBinder) service)。getService();
if(!mBluetoothLeService.initialize()) {
Log.e(TAG, “Unable to initialize Bluetooth”);
finish();
}
registerReceiver(mGattUpdateReceiver, makeGattUpdateIntentFilter());
mBluetoothLeService.connect(mDeviceAddress);
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
// TODO Auto-generated method stub
mBluetoothLeService = null;
}
};
BluetoothLeService.java将连接到该设备。
public boolean connect(final String address) {
if (mBluetoothAdapter == null || address == null) {
Log.w(TAG, “BluetoothAdapter not initialized or unspecified address.”);
return false;
}
if(mBluetoothDeviceAddress != null address.equals(mBluetoothDeviceAddress)
mBluetoothGatt != null) {
Log.d(TAG, “Trying to use an existing mBluetoothGatt for connection.”);
if(mBluetoothGatt.connect()) {
mConnectionState = STATE_CONNECTING;
return true;
}else {
return false;
}
}
final BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);
if(device == null) {
Log.w(TAG, “Device not found. Unable to connect”);
return false;
}
mBluetoothGatt = device.connectGatt(this, false, mGattCallback);
Log.d(TAG, “Try to create a new connection”);
mBluetoothDeviceAddress = address;
mConnectionState =STATE_CONNECTING;
return true;
}
它连接到设备后,我可以使用 readRemoteRssi 来从设备中读取 RSSI。
public void readRemoteRssi() {
mBluetoothGatt.readRemoteRssi();
}
但它只能读取 RSSI 的最后一个设备的我已连接。
当我看到日志时,它总是发送onCharacteristicWrite和readRemoteRssi()到我连接的最后一个设备。
我应该重新连接关贸总协定 》 或之前我想 RSSI 对读取或写入的 CharacteristicWrite 值的第一个设备重新连接到的第一个地址的设备概览
它不会有其他的方法来读取我已连接的所有设备的 RSSI 概览
解决方法 1:
使多个 BluetoothGatt 对象来连接多个设备分开,并调用 readRemoteRssi 一个接一个。
懒的和坏的示例中,您应该能够将那些 BluetoothGatt 对象放入数组
BluetoothGatt mBluetoothGatt1 = device1.connectGatt(this, false, mGattCallback);
BluetoothGatt mBluetoothGatt2 = device2.connectGatt(this, false, mGattCallback);
"test.txt"这个文件应该放在你的项目的目录下面,不要放到包里,如果有源文件夹src,要放到src外面,bw.flush(); 就不用加了,“new FileWriter("test.txt",true);
”这里面有个true,就是代表自动flush的。
笔记本查看mac地址的方法:
1、鼠标左键点击任务栏的“开始”按钮→运行→在弹出的“运行”窗口的“打开”文本框内输入“cmd”,然后单击“确定”按钮:
系统将弹出如下窗口
2、在新窗口中输入命令“ipconfig /all”后回车,在显示的结果中找到类似
Physical Address. . . . . . . . . : 00-E0-4C-3F-14-DE行,其中类似“00-E0-4C-3F-14-DE”的地址即为当前机器的网卡的mac地址。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流