这是一个已被问了很多次的问题,但我找不到始终有效的解决方案。onLocationChanged未在某些设备上调用
我正在开发一个使用融合位置提供程序的应用程序。 在onConnected()
方法中,我请求位置更新,并且一旦生成位置修复并且调用onLocationChanged()
,就会启动应用程序逻辑。 (请参阅下面的我的代码)。
问题onLocationChanged()
方法不会被调用的一些设备。我使用三星Tab 2和三星Galaxy Grand进行测试。此代码在Tab 2上工作得很好,但在Grand上无效。通过不起作用,我的意思是locationClient
获得连接,但不会调用onLocationChanged()
。
此前,我使用位置管理器获取位置,并在该实现中发生了同样的问题。所以,我试图实现融合的位置提供商,但我仍然遇到同样的问题。
任何人都可以帮我解决这个问题吗?有什么我在这里失踪?
public class MainActivity extends Activity implements GooglePlayServicesClient.ConnectionCallbacks, OnConnectionFailedListener, LocationListener {
LocationClient locationclient;
LocationRequest lr;
Location loc1;
static String address;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
locationclient = new LocationClient(this,this,this);
locationclient.connect();
}
@Override
public void onConnected(Bundle arg0) {
// TODO Auto-generated method stub
lr=LocationRequest.create();
lr.setInterval(100);
locationclient.requestLocationUpdates(lr, this);
Log.d("LocationClient","On Connected");
}
@Override
public void onDisconnected() {
// TODO Auto-generated method stub
locationclient.disconnect();
}
@Override
public void onConnectionFailed(ConnectionResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onLocationChanged(Location loc) {
// TODO Auto-generated method stub
// Application Logic
Log.d("LocationClient","Last Known Location LC:" + loc.getLatitude() + "," + loc.getLongitude());
}
}
如果onConnected()不会被调用onConnectionFailed()应该被触发。你看看ConnectionResult? –
正在调用onConnected()并建立连接。我已在两台设备上检查过。在onConnected()我请求位置更新,然后不会导致onLocationChanged调用。 – Rohit
您是否找到解决方法或解决方法?我面临同样的问题 – gian1200