参考图片。我正在尝试构建一个POC,在搜索时,用户当前位置包含在搜索结果中(并非所有用户,只有搜索中返回的用户。所有这些用户都已登录我的应用程序,我已经知道他们的用户ID 。 我尝试运行服务,这样我就可以在后台获取用户位置并使用下面的技术将其广播到我的搜索片段,除了我使用的是Service方法而不是IntentService:
public class MyIntentService extends IntentService {
//ACTION should include application package convention, just to show that this can
//be any string
public static final String ACTION = "mycustomactionstring";
public MyIntentService() {
super("MyIntentService");
// TODO Auto-generated constructor stub
Log.d("sohail", "service started");
}
@
Override
protected void onHandleIntent(Intent arg0) {
// TODO Auto-generated method stub
Log.d("sohail", "onHandleIntent called");
Intent in = new Intent(ACTION); //you can put anything in it with putExtra
Log.d("sohail", "sending broadcast");
LocalBroadcastManager.getInstance(this).sendBroadcast( in );
}
}
问题是我如何在Android中反映只向我提供搜索结果中特定用户的当前位置? Android中是否有更好的方法允许我们为所有登录用户中的特定用户执行类似user.getLastLocation的操作?这里有一些好的方法吗?
所有我基本上都想在Android中轻松说出“给我搜索结果中返回的特定用户的当前位置”这些用户是所有登录用户的一部分
我虽然跟踪了所有用户的位置并将其自己保存在数据库中并将其与搜索结果中返回的用户进行比较,但似乎可能不是理想的方式?
在这种情况下,有人可以建议更好的方式任何帮助都将受到赞赏。
答案 0 :(得分:0)
您可以使用webservice,每个用户每隔30秒或60秒在Web服务器上发送当前位置,然后使用webservice调用更新服务器,您将获得当前lat的长期用户
找到两个纬度之间的距离,如下所示。
Location loc1 = new Location("");
loc1.setLatitude(lat1);
loc1.setLongitude(lon1);
Location loc2 = new Location("");
loc2.setLatitude(lat2);
loc2.setLongitude(lon2);
float distanceInMeters = loc1.distanceTo(loc2);
希望以上解决方案可以帮到你。
如果您需要myside的更多帮助,请告诉我。