GoogleApiClientがonConnected関数を呼び出した後に "GoogleApiClient is not connected yet "と表示される。
質問
GoogleApiClientについて、よくわからないことがありました。 GoogleApiClientについて という関数があります。 onConnected という関数があり、これはクライアントが 接続された (確実に)接続されているときに実行されます。
という自作関数を手に入れました。 startLocationListening これは最終的に で呼び出され、GoogleApiClientの onConnected 関数で呼び出されます。
そこで私の startLocationListening関数は、GoogleApiClientの接続がないと実行できませんでした。
コードとログです。
@Override
public void onConnected(Bundle bundle) {
log("Google_Api_Client:connected.");
initLocationRequest();
startLocationListening(); //Exception caught inside this function
}
...
private void startLocationListening() {
log("Starting_location_listening:now");
//Exception caught here below:
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
}
例外が発生します。
03-30 12:23:28.947: E/AndroidRuntime(4936): java.lang.IllegalStateException: GoogleApiClient is not connected yet.
03-30 12:23:28.947: E/AndroidRuntime(4936): at com.google.android.gms.internal.jx.a(Unknown Source)
03-30 12:23:28.947: E/AndroidRuntime(4936): at com.google.android.gms.common.api.c.b(Unknown Source)
03-30 12:23:28.947: E/AndroidRuntime(4936): at com.google.android.gms.internal.nf.requestLocationUpdates(Unknown Source)
03-30 12:23:28.947: E/AndroidRuntime(4936): at hu.company.testproject.service.GpsService.startLocationListening(GpsService.java:169)
03-30 12:23:28.947: E/AndroidRuntime(4936): at hu.company.testproject.service.GpsService.onConnected(GpsService.java:259)
...
また、デバッグログによると onConnected 関数が呼び出されました。 :
03-30 12:23:28.847: I/Locationing_GpsService(4936): Google_Api_Client:connected.
03-30 12:23:28.857: I/Locationing_GpsService(4936): initLocationRequest:initing_now
03-30 12:23:28.877: I/Locationing_GpsService(4936): initLocationRequest:interval_5000
03-30 12:23:28.897: I/Locationing_GpsService(4936): initLocationRequest:priority_100
03-30 12:23:28.917: I/Locationing_GpsService(4936): Starting_location_listening:now
この後、例外が発生しました。
私はここで何かを見逃しているのでしょうか?私は "connected" の応答を得ました。私の func を実行すると、エラー "not connected" を得ました。さらに、1つ厄介なことに、この位置情報サービスを数週間使用していますが、このエラーは一度も発生していません。
E D I T :
私はより具体的なログ出力を追加しました、ちょうど私の心を吹きました、これをチェックしてください。
@Override
public void onConnected(Bundle bundle) {
if(mGoogleApiClient.isConnected()){
log("Google_Api_Client: It was connected on (onConnected) function, working as it should.");
}
else{
log("Google_Api_Client: It was NOT connected on (onConnected) function, It is definetly bugged.");
}
initLocationRequest();
startLocationListening();
}
のログを出力します。
03-30 16:20:00.950: I/Locationing_GpsService(16608): Google_Api_Client:connected.
03-30 16:20:00.960: I/Locationing_GpsService(16608): Google_Api_Client: It was NOT connected on (onConnected) function, It is definetly bugged.
はい、先ほど
mGoogleApiClient.isConnected() == false
中
onConnected()
とはどういうことでしょうか?
E D I Tです。
評判の良い懸賞金をかけても誰も答えられなかったので。 バグとしてGoogleに報告することにしました。 次に来たのは、私にとって本当に驚くべきことでした。 私の報告に対するGoogleの公式回答です。
このウェブサイトは、AOSP Android ソース コードおよび開発者用ツールセットに関する開発者の問題を扱うものです。 コードおよび開発者ツールセットに関する開発者の問題を扱うものであり、Google のアプリやサービス (Playサービス、GMS、Google API など) を扱うものではありません。 Play サービス、GMS、Google API などの Google アプリやサービスではありません。残念ながら Play Services のバグを報告する適切な場所はないようです。私が言えることは このウェブサイトはそのような場所ではありません。Google の製品フォーラムに投稿してみてください。 Product Forums に投稿してみてください。
問題の全容 をここに報告します。 (くだらないからと削除されないことを祈ります)
そうそう、Google Product Forumsを見てみましたが、このことを投稿するトピックが見つからなかったので、今のところ困惑して動けずにいます。
地球上の誰もがこれで私を助けることができますか?
E D I T:
全コードは ペーストビン
どのように解決するのですか?
onStartCommand()でgoogleApiClientを作成していることに今気づきました。これは悪いアイデアのように思えます。
あなたのサービスが2回トリガーされたとしましょう。2つのgoogleApiClientオブジェクトが作成されますが、あなたは1つだけを参照することになります。もし、参照を持たない方のオブジェクトがonConnected()のコールバックを実行した場合、そのクライアントでは接続されますが、実際に参照を持つクライアントはまだ接続されていない可能性があります。
私はそれが起こっていることを疑います。googleApiClientの作成をonCreateに移動して、同じ動作が起こるかどうか試してみてください。
関連
-
[解決済み] SDカードからファイルを削除する方法を教えてください。
-
[解決済み] RecyclerView.Stateを使って、RecyclerViewのスクロール位置を保存するには?
-
[解決済み] Eclipseでのandroid:configChangesでのAdmobエラー
-
[解決済み] 文字サイズとアンドロイドの画面サイズの違い
-
[解決済み] Android: ランドスケープモード用の代替レイアウト xml
-
[解決済み] アダプタからActivityメソッドを呼び出す
-
[解決済み] Androidでツールバーの戻るボタンの色を変えるには?
-
[解決済み] サポートライブラリのアクションバーをPreferenceActivityに追加するには?
-
[解決済み] アンドロイドボタンセレクター
-
[解決済み] WhatsAppでメッセージを送信する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Android:GoogleApiClientはまだ接続されていないのですか?
-
[解決済み] Eclipseでのandroid:configChangesでのAdmobエラー
-
[解決済み] HttpPostによる画像送信
-
[解決済み] AndroidでラジオボタンにOnClickListenerを設定するには?
-
[解決済み] AppCompat-v7 21でアクションバー/ツールバーにアイコンを表示する。
-
[解決済み] EclipseのAndroidプロジェクトにライブラリ/JARを追加する
-
[解決済み] Studio 3.4 をアップデートしたら、引数の leftShift() メソッドが見つかりませんでした。
-
[解決済み] 通知をクリックした後にアプリケーションを開く
-
[解決済み] PendingIntentの "requestCode "は何に使うのですか?
-
[解決済み] WhatsAppでメッセージを送信する