0
A
回答
1
John,您需要使用LocationManager類。這是一個tutorial on how to get the users location。
1
首先添加bellow類和接口到您的應用程序。
public class GPSManager
{
private static final int gpsMinTime = 500;
private static final int gpsMinDistance = 0;
private LocationManager locationManager = null;
private LocationListener locationListener = null;
private GPSCallback gpsCallback = null;
public GPSManager()
{
locationListener = new LocationListener()
{
public void onProviderDisabled(final String provider)
{
}
public void onProviderEnabled(final String provider)
{
}
public void onStatusChanged(final String provider, final int status, final Bundle extras)
{
}
public void onLocationChanged(final Location location)
{
if (location != null && gpsCallback != null)
{
Log.e("if location "+location,"if gpscallback"+gpsCallback);
gpsCallback.onGPSUpdate(location);
}
else{
Log.e("else location "+location,"else gpscallback"+gpsCallback);
}
}
};
}
public void startListening(final Activity activity)
{
if (locationManager == null)
{
locationManager = (LocationManager) activity.getSystemService(Context.LOCATION_SERVICE);
}
final Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
final String bestProvider = locationManager.getBestProvider(criteria, true);
if (bestProvider != null && bestProvider.length() > 0)
{
locationManager.requestLocationUpdates(bestProvider, GPSManager.gpsMinTime,
GPSManager.gpsMinDistance, locationListener);
}
else
{
final List<String> providers = locationManager.getProviders(true);
for (final String provider : providers)
{
locationManager.requestLocationUpdates(provider, GPSManager.gpsMinTime,
GPSManager.gpsMinDistance, locationListener);
}
}
}
public void stopListening()
{
try
{
if (locationManager != null && locationListener != null)
{
locationManager.removeUpdates(locationListener);
}
locationManager = null;
}
catch (final Exception ex)
{
}
}
public void setGPSCallback(final GPSCallback gpsCallback)
{
this.gpsCallback = gpsCallback;
}
public GPSCallback getGPSCallback()
{
return gpsCallback;
}
}
接口:
public interface GPSCallback
{
public abstract void onGPSUpdate(Location location);
}
然後實現在您的活動這個接口,並也在你的活動添加下面的代碼
gpsmanager=new GPSManager();
gpsmanager.startListening(YourActicvityname.this);
gpsmanager.setGPSCallback(this);
要在您停止GPS呼叫gpsmanager.stopListening()想關閉應用程序
+0
不要忘記在清單文件中添加權限,並且不要忘記接受答案,如果它可以幫助你的話。 – Abhi
2
最重要的是去除L ocationListener在您的活動的所有onPause方法中。然後,您可以重新啓動onResume方法中的偵聽。
如果您不在onPause方法中刪除偵聽器,即使您的應用在後臺暫停,GPS也將處於活動狀態。請參閱activity lifecycle瞭解更多信息。
相關問題
- 1. 從Android應用程序啓動和停止GPS(不是來自單個活動)
- 2. 如何獲取應用程序的啓動和停止時間?
- 3. 停止的應用程序啓動
- 4. 如何使用Android中的代碼啓動和停止GPS
- 5. 何時應啓動和停止應用程序池?
- 6. 停止啓動應用程序
- 7. 如何在應用程序啓動時「自動」啓用GPS?
- 8. 誰在調用/啓動/停止我的Android應用程序?
- 9. 我如何在ASP.NET中啓動和停止應用程序狀態
- 10. 如何在Android設備上啓動我的應用程序15分鐘後停止或禁用GPS?
- 11. 應用程序無法啓動。應用程序意外停止
- 12. 如何啓動/停止ActiveSync的應用程序懷抱設備
- 13. 使用php啓動和停止node.js的expressjs應用程序
- 14. 在應用程序啓動時停止已啓動的服務
- 15. 當我從應用程序呼叫時停止gps(打電話掛斷時自動停止gps)
- 16. 如何使用主管啓動/停止uWSGI應用程序?
- 17. 啓動應用程序時啓動屏幕時應用程序已停止
- 18. 啓動我的應用程序導致iPod音樂停止
- 19. 如何在Android應用程序中停止應用程序時關閉gps
- 20. 如何停止在BREW MP中啓動應用程序
- 21. android - 如何停止啓動應用程序
- 22. 如何在應用程序啓動時停止後臺任務?
- 23. 如何從Maven exec插件啓動/停止Rails應用程序?
- 24. 如何在apache ignite未啓動時停止應用程序?
- 25. 使用python啓動和停止mac應用程序
- 26. C#程序啓動和停止服務
- 27. 如何在使用java的tomcat中啓動和停止應用程序?
- 28. 啓動GPS應用程序即服務
- 29. 包裝應用程序在Android上啓動和停止應用程序
- 30. 如何關閉或停止我在Android中啓動的外部應用程序
您應該啓動GPS來執行某種功能,例如獲取用戶的位置。每次應用程序啓動和結束時都不應該啓動它。出於某種原因,您應該在需要時啓動它。你準備做什麼? – Icemanind
@我想要獲取用戶當前的經緯度,從設備開始,所以我需要GPS – John