我只是想听听GPS状态的变化。我有以下内容:
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
lm.addGpsStatusListener(new android.location.GpsStatus.Listener() {
public void onGpsStatusChanged(int event) {
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
switch (event) {
case GPS_EVENT_STARTED:
if((alertDialog != null) && (alertDialog.isShowing())){
alertDialog.dismiss();
}
contador=0;
darHandle();
break;
case GPS_EVENT_STOPPED:
if(mProgressDialog!=null && mProgressDialog.isShowing()) {
mProgressDialog.dismiss();
}
contador=0;
break;
}
}
});
它在我的Moto G 1st中运行良好,但它已被弃用,并且在某些设备中不起作用。
我试图弄清楚在这种情况下如何使用onProviderEnabled()
/ onProviderDisabled()
。我尝试了很多代码示例,但没有让它工作。
我现在正在尝试这个:
LocationListener locationListenerGps = new LocationListener() {
public void onLocationChanged(Location location) {
}
public void onProviderDisabled(String provider) {}
public void onProviderEnabled(String provider) {}
public void onStatusChanged(String provider, int status, Bundle extras) {}
};
LocationManager locationManager = (LocationManager) this
.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 12000, 0, locationListenerGps);
但在最后一行它说:
无法解决方法requestLocationUpdates(java.lang.String, int, int, com.google.android.gms.location.LocationListener)
答案 0 :(得分:0)
这恰好发生在我身上。
我认为您的问题必须与导入的侦听器的类有关。
有两种:
您使用的那个:com.google.android.gms.location.LocationListener
和:android.location.LocationListener
您使用的那些方法属于第二种方法。 使用那个,你应该没事。
在Android中通常会发生这种情况,所以要警惕,不同的API有很多类,其中一些重复名称,你必须尝试组合。