这是一个已经被问过很多次的问题,但我找不到始终有效的解决方案。
我正在使用 Fused 位置提供程序开发应用程序。在该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());
}
}