私はこのonConnected
コールバックを実装していGoogle LocationClient API
ます:
@Override
public void onConnected(Bundle arg0) {
if (lc != null) {
lastKnownLocation = lc.getLastLocation();
LocationRequest request = new LocationRequest();
request.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
request.setFastestInterval(MIN_TIME_BETWEEN_LOCATION_UPDATES);
request.setSmallestDisplacement(MIN_DISTANCE_BETWEEN_LOCATION_UPDATES);
lc.requestLocationUpdates(request, ll);
}
}
そして、何らかの理由で、時々この行:
lastKnownLocation = lc.getLastLocation();
私にこの例外を与えます:
java.lang.IllegalStateException: Not connected. Call connect() and wait for onConnected() to be called.
at com.google.android.gms.internal.de.bc()
at com.google.android.gms.internal.ez.a()
at com.google.android.gms.internal.ez$c.bc()
at com.google.android.gms.internal.ey.getLastLocation()
at com.google.android.gms.internal.ez.getLastLocation()
at com.google.android.gms.location.LocationClient.getLastLocation()
at com.citylifeapps.cups.helputils.UserLocation.onConnected(UserLocation.java:115)
at com.google.android.gms.internal.de.aZ()
at com.google.android.gms.internal.de$f.a()
at com.google.android.gms.internal.de$f.a()
at com.google.android.gms.internal.de$b.be()
at com.google.android.gms.internal.de$a.handleMessage()
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5356)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(NativeStart.java)
なぜこれが起こるのか本当に理解できません。LocationClient
明らかに、接続メソッドを実行してコールバックを待った後に最後の既知の場所を取得しようとしています。接続があるとコールバックが呼び出されるonConnected
ことを理解しているので、どうすれば例外を取得できますか? 誰か知ってる?onConnected
"Not connected ..."
ありがとう。