Исключительная ситуация критического сбоя Как решить это - PullRequest
1 голос
/ 12 декабря 2011

Я написал следующий код для отправки координат местоположения на сервер:

setTitle("version 5.0");
    Criteria criteria = new Criteria();
    criteria.setHorizontalAccuracy(Criteria.NO_REQUIREMENT);
    criteria.setVerticalAccuracy(Criteria.NO_REQUIREMENT);
    criteria.setCostAllowed(true);
    criteria.setPreferredPowerConsumption(Criteria.POWER_USAGE_LOW);

   // bc.setFailoverMode(GPSInfo.GPS_MODE_ssCDMA_MS_ASSIST, 2, 100);
    try {
        LocationProvider lp=LocationProvider.getInstance(criteria);
        if(lp !=null)
        {
        Location loc=null;
    //  while(loc==null)
    //  {   
            loc=lp.getLocation(-1);
    //  }
        if(loc!=null){
            add(new EditField(loc.getQualifiedCoordinates().getLatitude()+"\n"+loc.getQualifiedCoordinates().getLongitude(),""));
        }
        else 
            add(new EditField("unable to find the location provider", ""));
        }
        else
        {
        add(new EditField("unable to find the location provider", ""));
        }
    } catch (LocationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    ButtonField b = new ButtonField("Send");
    add(b);
    b.setChangeListener(new FieldChangeListener() {

        public void fieldChanged(Field field, int context) {
            // TODO Auto-generated method stub
            try{
                String url="http://56.91.532.72:8084/SFTS/updateLocation.jsp?empid=12304&lat=16.9477&lon=82.23970;deviceside=true";
                Dialog.alert(url);
                ConnectionFactory factory = new ConnectionFactory();

                 // use the factory to get a connection
                 ConnectionDescriptor conDescriptor = factory.getConnection(url, TransportInfo.TRANSPORT_TCP_CELLULAR,null);


                 if ( conDescriptor != null ) {
                    HttpConnection  conn = (HttpConnection) conDescriptor.getConnection();  
                    Dialog.alert("http");
                    //conn.setRequestMethod(HttpConnection.GET);
                    Dialog.alert("conn.setre");
                    int responseCode = conn.getResponseCode();
                    Dialog.alert(Integer.toString(responseCode));
                    if(responseCode == HttpConnection.HTTP_OK)
                    {
                        Dialog.alert("OK");
                        InputStream data = conn.openInputStream();
                        StringBuffer raw = new StringBuffer();
                        byte[] buf = new byte[4096];
                        int nRead = data.read(buf);
                        while(nRead > 0)
                        {
                            raw.append(new String(buf, 0, nRead));
                            nRead = data.read(buf);
                        }

                    }
                }
            }catch(Exception e){
                    Dialog.alert(e.getMessage());
                }
        }
    }); 

Я получаю исключение Критическая ошибка туннеля.Но я могу получить координаты местоположения правильно.Я использую Blackberry 8520 с Airtel Sim, который включен с услугами передачи данных.На самом деле это приложение хорошо работало в мобильном телефоне с версией 5.0.Но это не работает на мобильном телефоне, который я обновил с 4.6.1.3 до 5.0.0, в чем может быть проблема?Пожалуйста, предоставьте мне решение.спасибо

Я также попробовал следующие URL:

  1. http://56.91.532.72:8084/SFTS/updateLocation.jsp?empid=12304&lat=16.9477&lon=82.23970;deviceside=true;apn=null
  2. http://56.91.532.72:8084/SFTS/updateLocation.jsp?empid=12304&lat=16.9477&lon=82.23970;deviceside=true;apn=airtelgprs.com

Я также включил настройки apnв моем мобильном

1 Ответ

1 голос
/ 12 декабря 2011

Это потому, что вы не настроили APN правильно.Поскольку вы используете прямой tcp, для подключения к сети необходимо установить apn.

Кроме того, сетевые подключения должны выполняться в отдельном потоке.

...