[解決済み] Android:GoogleApiClientはまだ接続されていないのですか?
2022-02-06 21:08:23
質問
ユーザーの現在地を更新するには 私のプロジェクトでは、以下のメソッドを実装しています。
GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener
プロジェクトを実行すると、以下のエラーが発生します。
java.lang.IllegalStateException: GoogleApiClient is not connected yet.
そして、コードにエラーがあります。
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
多くの解決策が提案されています。 これは と この しかし、何の問題も解決しない。
解決にご協力ください。
onCreateメソッド内の私のコード。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
FirebaseCrash.report(new Exception("Exceptin"));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
checkLocationPermission();
}
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
mGoogleClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
mLocationRequest = LocationRequest.create()
.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY)
.setInterval(60*1000)
.setFastestInterval(1*1000);}
そしてonMapReadyで。
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
buildGoogleApiClient();
mMap.setTrafficEnabled(true);
mMap.setMyLocationEnabled(true);}
そして、これ。
protected synchronized void buildGoogleApiClient() {
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
mGoogleApiClient.connect();
}
@Override
public void onConnected(@Nullable Bundle bundle) {
if (servicesAvailable()) {
// Get best last location measurement meeting criteria
mLastLocation = bestLastKnownLocation(MIN_LAST_READ_ACCURACY, FIVE_MIN);
if (null == mLastLocation
|| mLastLocation.getAccuracy() > MIN_LAST_READ_ACCURACY
|| mLastLocation.getTime() < System.currentTimeMillis() - TWO_MIN) {
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
// Schedule a runnable to unregister location listeners
Executors.newScheduledThreadPool(1).schedule(new Runnable() {
@Override
public void run() {
LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, MainActivity.this);//This Line Return Error
}
}, ONE_MIN, TimeUnit.MILLISECONDS);
}
}else{
handleNewLocation(mLastLocation);
}
}
ご協力ありがとうございました :)
解決方法は?
私は私のプロジェクトでスプラッシュスクリーンを使用するため、私の問題を解決したスプラッシュスクリーンアクティビティにこのコードを置く。
mGoogleClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
関連
-
[解決済み】パッケージ名(Google Analytics)に一致するクライアントが見つからない - 複数のproductFlavorsとbuildTypes
-
[解決済み】java.lang.RuntimeException: アクティビティを開始できない ComponentInfo
-
[解決済み】シンボル 'AppCompatActivity' を解決できない。
-
[解決済み] [Solved] java.lang.RuntimeException: アクティビティーのインスタンス化ができません ComponentInfo
-
[解決済み】Bluestackの向きを変更する : ポートレート/ランドスケープモード
-
[解決済み】フラグメントMyFragmentがアクティビティにアタッチされない。
-
[解決済み】Couldn't load memtrack module Logcat Error
-
[解決済み] コンパイルした.apkを端末にインストールしようとするとINSTALL_FAILED_UPDATE_INCOMPATIBLEが表示される
-
[解決済み] Xlint:deprecationを使用して再コンパイルする方法
-
[解決済み] AndroidでBluetoothが有効かどうかのチェックに失敗する(REQUEST_ENABLE_BTを変数に解決できない)。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】まだ警告が出る:設定 'compile' は時代遅れで 'implementation' に置き換わった。
-
[解決済み】OnFragmentInteractionListenerを実装する方法
-
[解決済み】Android Intent コンストラクタを解決できない
-
[解決済み】AndroidのSSL接続でトラストアンカーが見つからない
-
[解決済み】アンドロイドクロームブラウザのモバイルウェブアプリケーションのメニューでHTMLユニコード ☰が検出されない。
-
[解決済み】"ビットマップが大きすぎてテクスチャにアップロードできない"
-
[解決済み】Bluestackの向きを変更する : ポートレート/ランドスケープモード
-
[解決済み] BIOSのセキュリティ設定でVT-xを有効にする(お使いのコンピュータのドキュメントを参照)。
-
[解決済み] android.intent.action.MAINの意味は何ですか?
-
[解決済み] Android M パーミッション : shouldShowRequestPermissionRationale()関数の使用方法について混乱しています。