0

ご存知のように、HUAWEI、ZTE、Samsung デバイスなどの一部の Android スマートフォンには Google サービスがないため、android.location.LocationManagerを使用して NetworkProvider で現在地をリクエストしようとすると、常に応答がありません。GPSProvider ("gps") は正常に動作しますが、内部では時間がかかりすぎます。そのため、バックアップ プランとして十分に正確ではない可能性があるサード パーティのロケーション プロバイダーを使用しています。

問題は、デバイスに Google サービスがない場合に、タイムアウト期間を待ってバックアップを適用したくないということです。アプリケーションの初期化中にこれを検出する方法はありますか?

現在のGoogleサービスの応答なしの後にフラグを設定しました。代替手段があるかどうか疑問に思います。

ありがとうございました :)

4

2 に答える 2

2

最後に、次の戦略を使用します。

  1. Google とサードパーティ プロバイダの両方で検索を開始し、両方のプロバイダが戻る (またはタイムアウトする) まで待ちます。

  2. 結果を確認し、Google のサービスが失敗した場合は、設定にブール値フラグを追加して、このデバイスで Google 位置情報サービスを利用できないことを示します。フラグが設定されている場合は、決して Google の位置情報サービスを使用しないでください。

  3. 数日後、上記の手順を再度実行して再確認してください。

于 2012-08-16T03:32:16.497 に答える
0

それは良い質問です。私はそれを試したことはありません。しかし、LocationManager にはメソッドがあります。

public List<String> getProviders (boolean enabledOnly)

多分あなたはそれを使うことができますか?

于 2012-07-27T01:32:37.243 に答える