Я делаю приложение Bluetooth j2me.Я также новичок в мире Java.Где я должен отобразить имя службы Bluetooth для пользователя.Пока что все работает правильно, кроме имени службы.Я подтвердил, что мой Bluetooth-сервер правильно называет имя рекламной службы другим клиентом (выполнено qt).Я попытался следующим образом: -
public void commandAction(Command command, Item item) {
if (item == deviceChoiceGroup) {
if (command == servicesDiscoverCommand) {
if(deviceList.size()==0) {
return;
}
UUID[] searchList = new UUID[1];
searchList[0] = new UUID("11111111111111111111111111111111",false);
int[] attrSet = new int[1];
attrSet[0] = 0x100;
RemoteDevice currentDevice =
(RemoteDevice) deviceList.elementAt(
getDeviceChoiceGroup().getSelectedIndex());
if(currentDevice == null) {
return;
}
try {
transactionID = bluetoothDiscoveryAgent.searchServices(
new int[] {0x100}, searchList, currentDevice, this);
printToForm("Start services under L2CAP searching...");
form.addCommand(cancelServicesDiscoverCommand);
} catch (BluetoothStateException e) {
//TODO: write handler code
}
}
}
}
public void servicesDiscovered(int transID, ServiceRecord[] serviceRecords){
if (serviceRecords.length>0 && serviceRecords!=null)
{
connectionURL=serviceRecords[0].getConnectionURL(0, false);
int[] ids=serviceRecords[0].getAttributeIDs();
DataElement ServiceName=serviceRecords[0].getAttributeValue(ids[1]);
// tried to convert objedct to string.
String str = (ServiceName.getValue()).toString();
// out is put is like java.util.vector$1@3c60cd14c
printToForm("#Service name: "+str);
printToForm("The Service name is: "+ServiceName.getValue());
}
}
«DataElement.getValue ()», который возвращает объект.Таким образом, я вижу имя сервиса как «java.util.vector$1@3c60cd14c».Я пытался преобразовать объект в строку как "String str = (ServiceName.getValue ()). ToString ();"Это не конвертируется правильно.
Итак, как преобразовать объект в строку.Чтобы я мог видеть название сервиса в виде обычного текста.Спасибо!