SecurityException повышается при попытке использовать JSR-179

Я хочу получить longitude а также latitude телефона мобильного по этому коду:

    public void commandAction(Command com, Displayable d) {
        if (com == position)
        {
            try
            {
                Criteria cr = new Criteria();
                cr.setHorizontalAccuracy(500);
                LocationProvider lp = LocationProvider.getInstance(cr);
                // get the location, one minute timeout
                Location l = lp.getLocation(60);
                Coordinates coords = l.getQualifiedCoordinates();
                if (coords != null)
                {
                    double longitude = coords.getLongitude();
                    double latitude = coords.getLatitude();
                    String sLong = String.valueOf(longitude);
                    String sLat = String.valueOf(latitude);
                    Tlongitude.setString(sLong);
                    Tlatitude.setString(sLat);
                }
            } catch (LocationException ex) {
                Tlongitude.setString("LocationException");
                Tlatitude.setString("LocationException");
            } catch (InterruptedException ex) {
                Tlongitude.setString("InterruptedException");
                Tlatitude.setString("InterruptedException");
            }
        }
    }

Проблема заключается в том, что при нажатии на команду "позиция" отображается системное предупреждение: java.lang.SecurityException : Application not authorized to access the restricted API,

И что же мне делать?

2 ответа

Решение

Добавьте соответствующее разрешение в ваше приложение и подпишите его сертификатом в соответствующем домене безопасности.

Спецификация JSR179 определяет 7 разрешений в соответствии с javax.microedition.location, Выберите те, которые вам нужны, в зависимости от того, что вам нужно, чтобы ваш код делал.

Решение Люцифера (Verisign или Thawte) поможет, если функциональная группа определения местоположения находится в доверенном стороннем домене безопасности для телефонов, на которых вы хотите запустить свой код. Однако оператор или производитель мобильной связи мог бы вместо этого указать местоположение в своем домене безопасности.

/questions/45410490/privilegirovannyie-operatsii-v-mobilnosti-netbeans содержит краткое объяснение модели безопасности MIDP.

Вы пытаетесь получить доступ к Location API, который является ограниченным API. Для этого вы должны подписать свое мобильное приложение сертификатом подписи, таким как Verisign, Thawte и т. Д.

Стоимость сертификата составляет около 20 тысяч индийских рупий.

Вы можете посетить мои другие ответы здесь и здесь относительно подписи сертификата.

Другие вопросы по тегам