0
我有一个名为GPStracker的类,它实现LocationListener接口。Android LocationListener没有打onLocationChanged
public class GPSTracker implements LocationListener {
Context context;
LocationManager lm;
在我设定的LocationManager和一些设置构造函数(我省略的权限部分):
public GPSTracker(Context c) {
context = c;
... (Permission checking)
lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
boolean isGPSEnabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
if(isGPSEnabled){
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 6000, 5, this);
} else {
Toast.makeText(context, "Please enable GPS", Toast.LENGTH_SHORT).show();
}
}
在manifest文件中我设置一下GPS这些权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
我有一些重写的方法,其中只有一个具有一些功能,onLocationChanged方法:
@Override
public void onLocationChanged(Location location) {
InspectieOverzicht activity = (InspectieOverzicht) context;
activity.getFirstFragment().updateDistance(location);
}
我在活动中创建了一个新的GPSTracker对象。
g = new GPSTracker(this);
我希望这个工作。它会要求使用GPS的权限,我会在顶部看到GPS图标,因此它可以与GPS协同工作。但onLocationChanged
方法从未被调用。
我甚至试着在我所在的建筑物上下行走(也许它确实需要改变),但那也行不通。
我已经尝试过在虚拟设备上更改GPS位置,并且像魅力一样工作。它会立即更新我的活动。
我已经尝试过API 19,23和26(在模拟设备上)所有的工作。我已经在API 23上尝试过,它似乎并不工作。
有没有人知道我在做什么错在这里?
可能不能伤害,但它并没有解决我的问题。 – Ravenix
我在我的代码中错误的地方改变了它,当我把它放在正确的地方时,它完全修复了它。谢谢!! – Ravenix