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 тысяч индийских рупий.
Вы можете посетить мои другие ответы здесь и здесь относительно подписи сертификата.