2016-02-01 2 views
2

Я работаю над приложением iOS с codename one. Я хочу получить текущее местоположение и отправить его по SMS.Codename один провайдер GPS и текущее местоположение

Я получил этот код от Java Android Studio, я не знаю, как получить текущее местоположение, а также проверить, включен ли GPS.

Я попытался ниже, но без успеха (я не знаю, как они начинают GPS и получить место)

LocationManager service = (LocationManager) getSystemService(LOCATION_SERVICE); 
boolean enabledGPS = service.isProviderEnabled(LocationManager.GPS_PROVIDER); 
if (!enabledGPS) { 
    //alert GPS is off 
} 
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
// Define the criteria how to select the location provider -> use 
// default 
Criteria criteria = new Criteria(); 
provider = locationManager.getBestProvider(criteria, false); 
Location location = locationManager.getLastKnownLocation(provider); 

// Initialize the location fields 
if (location != null) { 
    Toast.makeText(this, "Provider: " + provider, Toast.LENGTH_SHORT).show(); 
    onLocationChanged(location); 
} else { 
    //do something 
} 

onLocationChanged метод:

try { 
    StringBuffer smsBody = new StringBuffer(); 
    smsBody.append("http://maps.google.com/?q="); 
    smsBody.append(gpsLocation.getLatitude()); 
    smsBody.append(","); 
    smsBody.append(gpsLocation.getLongitude()); 

    String phnum="xxxxx"; 
    String smsbod= smsBody.toString(); 


    Display.getInstance().sendSMS(phnum,smsbod); 
} catch (IOException ex) { 
    Dialog.show("Error!", "Failed to start. installed?", "OK", null); 
    ex.printStackTrace(); 
} 

ответ

3

Вы можете» t запустите GPS в кодовом имени, вы можете только проверить, включено ли оно и отобразить сообщение, если это не так.

Попробуйте код ниже:

//Check if location is turned on and your app is allowed to use it. 
if (Display.getInstance().getLocationManager().isGPSDetectionSupported()) { 
    if (Display.getInstance().getLocationManager().isGPSEnabled()) { 
     InfiniteProgress ip = new InfiniteProgress(); 
     final Dialog ipDlg = ip.showInifiniteBlocking(); 
     //Cancel after 20 seconds 
     Location loc = LocationManager.getLocationManager().getCurrentLocationSync(20000); 
     ipDlg.dispose(); 
     if (loc != null) { 
      double lat = loc.getLatitude(); 
      double lng = loc.getLongitude(); 
      try { 
       Display.getInstance().sendSMS("09123456789", "http://maps.google.com/?q=" + lat + "," + lng, false); 
      } catch (IOException ex) { 
       Dialog.show("Error!", "Failed to start. installed?", "OK", null); 
       ex.printStackTrace(); 
      } 
     } else { 
      Dialog.show("GPS error", "Your location could not be found, please try going outside for a better GPS signal", "Ok", null); 
     } 
    } else { 
     Dialog.show("GPS disabled", "AppName needs access to GPS. Please enable GPS", "Ok", null); 
    } 
} else { 
    InfiniteProgress ip = new InfiniteProgress(); 
    final Dialog ipDlg = ip.showInifiniteBlocking(); 
    //Cancel after 20 seconds 
    Location loc = LocationManager.getLocationManager().getCurrentLocationSync(20000); 
    ipDlg.dispose(); 
    if (loc != null) { 
     double lat = loc.getLatitude(); 
     double lng = loc.getLongitude(); 
     try { 
      Display.getInstance().sendSMS("09123456789", "http://maps.google.com/?q=" + lat + "," + lng, false); 
     } catch (IOException ex) { 
      Dialog.show("Error!", "Failed to start. installed?", "OK", null); 
      ex.printStackTrace(); 
     } 
    } else { 
     Dialog.show("GPS error", "Your location could not be found, please try going outside for a better GPS signal", "Ok", null); 
    } 
} 
+0

В это время, я не получать сообщения об ошибках, но ничего не случилось. Не отправлено sms, а не предупреждения диалогового окна. Я повернул GPS –

+0

На каком устройстве вы пытаетесь это сделать? Попытайтесь изменить это 'Display.getInstance(). SendSMS (« 09123456789 »,« http://maps.google.com/?q= »+ lat +», «+ lng, false»), 'to this' Display.getInstance() .sendSMS («09123456789», «http://maps.google.com/?q=» + lat + »,« + lng, true »;' – Diamond

+0

Я использую приложение Samsung Xcover 2 (android) он должен работать на IOS, но я думаю, что смогу проверить его на любом устройстве. –

Смежные вопросы