これは何度も尋ねられた質問ですが、常に機能する解決策を見つけることができませんでした.
Fused ロケーション プロバイダーを使用してアプリケーションを開発しています。このonConnected()
メソッドでは、位置の更新を要求しています。位置修正が生成されonLocationChanged()
て呼び出されると、アプリケーション ロジックが開始されます。(以下の私のコードを参照してください)。
問題 onLocationChanged()
のメソッドは、一部のデバイスでは呼び出されません。テストには Samsung Tab 2 と Samsung 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());
}
}