gpt4 book ai didi

java - 假模拟位置不会在谷歌地图上改变

转载 作者:行者123 更新时间:2023-12-01 12:39:58 25 4
gpt4 key购买 nike


我对 Android 应用程序创建非常陌生,所以我有一个问题:

您能告诉我为什么真正的 Android 设备无法识别从 jSON 获取的模拟(虚假)位置吗?

功能:

public void setLocation(double latitude, double longitude,Context ctx) {
LocationManager mLocationManager = (LocationManager) ctx.getSystemService(Service.LOCATION_SERVICE);
if (mLocationManager.getProvider("spoof") == null) {
mLocationManager.addTestProvider("spoof", false, true, false, false, false, false, false, 0, 5);
mLocationManager.setTestProviderEnabled("spoof", true);
}
Location loc = new Location("spoof");
loc.setLatitude(latitude);
loc.setLongitude(longitude);
loc.setTime(System.currentTimeMillis());
loc.setAccuracy(16F);
loc.setAltitude(0D);
loc.setBearing(0F);
mLocationManager.setTestProviderLocation("spoof", loc);
Toast.makeText(getBaseContext(), "Lat:"+latitude+" - Lng:"+longitude, Toast.LENGTH_LONG).show();
}

所以现在我有纬度和经度,它们被设置为latalonga

这是运行该函数的代码

setLocation(lata,longa, getBaseContext());

函数和向函数发送数据是有效的,因为它使用 Toast.makeText 打印出纬度和经度,但问题是谷歌地图、谷歌导航器不会看到新位置并设置是真实的..它使用网络位置..

我尝试在没有 GPS 的设备上运行此程序 - 安卓4.0.3 - 安卓4.2.2

提前谢谢您!

最佳答案

我想我明白了,我为您的这个具体问题所做的如下:
您必须创建一个扩展 LocationSource 的类,如下例所示:

public class MyLocationSource implements LocationSource{

//either save it or add it to a list
//adivsable would be to create one instance for each listener not an array.
OnLocationChangedListener listener;

public MyLocationSource () {


}
//Google maps somehow extends this OnLocationChangedListener
@Override
public void activate(OnLocationChangedListener mListener) {
this.listener = mListener;
//initially u save the listener
//here u can make a mix between what the GPS delivers and your manual loc

}

@Override
public void deactivate() {

//here u can stop the updates
listener = null;
}


protected void fireUpdate(Location loc) {

if (listener != null && loc != null) {
listener.onLocationChanged(loc);
}
}
}

现在,您在谷歌地图中所要做的就是实例化此类,并尝试使用我给您的内容提供您想要的位置。
有关激活/取消激活的更多详细信息,您可以在以下地址找到:
http://developer.android.com/reference/com/google/android/gms/maps/LocationSource.html
另外你可以看看 commonswguy:
https://github.com/commonsguy/cw-omnibus/tree/master/MapsV2/Location

关于java - 假模拟位置不会在谷歌地图上改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25202615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com