【发布时间】:2023-04-04 20:35:01
【问题描述】:
当有互联网连接时,我能够成功地将 gps 位置存储到服务器。但是当没有互联网连接时,我想将一些存储在移动设备中,然后需要推送到服务器。有可能吗?
【问题讨论】:
-
是的,您可以使用 sqlite db 或共享首选项来存储 gps 位置,然后在互联网可用时推送它
标签: android android-gps
当有互联网连接时,我能够成功地将 gps 位置存储到服务器。但是当没有互联网连接时,我想将一些存储在移动设备中,然后需要推送到服务器。有可能吗?
【问题讨论】:
标签: android android-gps
我对您的问题的考虑是,当您有互联网时,您的数据正在保存,当您离线时,您还想保存 GPS 位置,当互联网可用时,它应该与服务器同步。好吗?
为此,您可以创建一个 SharedPreference,它可以在短时间内维持所有 LatLng。并且还定义了一种可以搜索网络连通性的方法。尽快建立连接,您可以将本地存储的值与服务器同步,并且不要忘记在与服务器成功同步时清除 SharedPreference 值..
下次请分享您的代码以便更好地理解.. 快乐编码。
【讨论】:
像这样创建一个扩展 BroadcastReciever 的类:
public class CheckConnectivity extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent arg1) {
boolean isConnected = arg1.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
if(isConnected){
//Store your GPS Coordinates when no Connection
Toast.makeText(context, "Internet Connection Lost", Toast.LENGTH_LONG).show();
}
else{
//send your GPS Coordinates to Server
Toast.makeText(context, "Internet Connected", Toast.LENGTH_LONG).show();
}
}
}
并且不要忘记在您的清单中添加权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
【讨论】: