這是一個已被問了很多次的問題,但我找不到始終有效的解決方案。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