Codename一个GPS提供者和当前位置

我正在使用代号为1的iOS应用程序。 我想获得当前位置并通过短信发送。

我从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(); } 

您不能在codenameone中启动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); } }