我需要一個簡單的代碼片段,它可以執行以下操作。 我需要一個可以執行以下操作的函數。在Android上需要GPS位置幫助
- 檢查GPS是否啓用。如果未啓用,則啓用它。
- 檢查當前位置,即得到經度和緯度
- 禁用GPS。
我不需要連續位置更新,如LocationListener。只需15分鐘即可。 任何人都可以提供我這個工作代碼片段?
我需要一個簡單的代碼片段,它可以執行以下操作。 我需要一個可以執行以下操作的函數。在Android上需要GPS位置幫助
我不需要連續位置更新,如LocationListener。只需15分鐘即可。 任何人都可以提供我這個工作代碼片段?
爲使GPS:
private void turnGPSOn(){
String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if(!provider.contains("gps")){ //if gps is disabled
final Intent poke = new Intent();
poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
poke.setData(Uri.parse("3"));
sendBroadcast(poke);
}
}
禁用GPS
private void turnGPSOff(){
String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if(provider.contains("gps")){ //if gps is enabled
final Intent poke = new Intent();
poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
poke.setData(Uri.parse("3"));
sendBroadcast(poke);
}
}
要檢查GPS是與否。
if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
buildAlertMessageNoGps();
}
獲取當前位置。
public void getCurrentLocation() {
LocationManager locationManager;
String context = Context.LOCATION_SERVICE;
locationManager = (LocationManager) getSystemService(context);
Criteria crta = new Criteria();
crta.setAccuracy(Criteria.ACCURACY_FINE);
crta.setAltitudeRequired(false);
crta.setBearingRequired(false);
crta.setCostAllowed(true);
crta.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(crta, true);
locationManager.requestLocationUpdates(provider, 1000, 0,
new LocationListener() {
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onLocationChanged(Location location) {
if (location != null) {
double lat = location.getLatitude();
double lng = location.getLongitude();
if (lat != 0.0 && lng != 0.0) {
System.out.println("WE GOT THE LOCATION");
System.out.println(lat);
System.out.println(lng);
getAddress();
}
}
}
});
}
嗨Noby,非常感謝您提供詳細代碼。由於我對java很陌生,我想知道是否有可能在android中創建java類,並將其從任何其他父類(如activity,service或broadcast reciever)中擴展出來?我想要一個簡單的java類,它將包含所有上述方法,並且我將從其他活動或類中調用它們。我把上面的代碼放在一個簡單的java類中,並導入了「import android.provider.Settings」,但仍然顯示「getContentResolver()」錯誤。你能幫忙嗎? –
AFAIK您無法以編程方式啓用GPS。您必須使用LocationManager/Listener並將更新間隔設置爲15分鐘 – Gryphius