代号一个 GPS 提供商和当前位置
Codename one GPS provider and current location
我正在使用 codename one 开发 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();
}
代号one无法开启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);
}
}
我正在使用 codename one 开发 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();
}
代号one无法开启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);
}
}