Как преобразовать объект Java в обычную строку в приложении Bluetooth J2ME? - PullRequest
0 голосов
/ 19 октября 2011

Я делаю приложение 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 ();"Это не конвертируется правильно.

Итак, как преобразовать объект в строку.Чтобы я мог видеть название сервиса в виде обычного текста.Спасибо!

1 Ответ

0 голосов
/ 19 октября 2011

Видя результат: java.util.vector$1@3c60cd14c я думаю, что тип возвращаемого объекта - Vector.

Поэтому попробуйте привести к вектору Vector и пройти через него, чтобы получить значения.

Iterator itr = serviceName.getValue().iterator();//do something here
System.out.println("Iterating through Vector elements...");
while(itr.hasNext())
      System.out.println(itr.next());
...