問題タブ [location-provider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2586 参照

java - Android での抽象クラスの拡張: LocationProvider

これはおそらく単純で馬鹿げた問題です。私はそれに関するドキュメントを見つけることができません。Androidで独自のLocationProviderを作成したい。LocationProviderは、コンストラクターを持たない抽象クラスです。

Eclipseから次のエラーが表示されます

しかしもちろん、空のスーパー コンストラクターは表示されません。LocationProvider のコンストラクターはありませ。コンストラクターなしで抽象クラスのサブクラスを作成するにはどうすればよいですか?

たとえば、これは同じエラーをスローします。

Android の LocationProvider を変更できないため、パブリックなコンストラクターを作成できません。これは本質的にサブクラス化できないクラスですか? Android は、私たちが LocationProvider を作成することを期待していませんか? 他の LocationProvider はどのように行われますか? 誰でも例を挙げてもらえますか?

0 投票する
3 に答える
2921 参照

android - androidLocationListenerがGPSの使用を停止しない

私のservice場合、一部のシナリオでは、GPSがデバイスのバッテリーを検索して消耗するのを止めることができません。

LocationListenerAgent.java

アプリを破壊するメインアクティビティで「戻る」を押すと、アプリのいくつかの場所から、これは次のように呼ばれます。

多分私のsuper.Onライフサイクルメソッドはメソッドを持つコードの前にある必要があります。

GPSを停止するには他に何をする必要がありますか?他の人がこれに問題を抱えているのを見たことがありますが、答えはそれほど絶対的ではないようです。

私のアプリの他のシナリオでは、GPSは停止します。

0 投票する
0 に答える
309 参照

android - ネットワーク プロバイダーがアップデートの提供を停止する

まれに (数日おきに)、アプリが新しい位置情報の更新を受信しなくなることに気付きました。

ロケーション リスナーは、ネットワーク プロバイダーと GPS プロバイダーの両方に登録されます。GPS プロバイダーがオフになっているため、位置情報はネットワーク プロバイダーから更新されます。数日おきに、場所が古くて更新されていないことに気付きます。デバッグ ログから、ロケーション リスナーがロケーション マネージャーに登録されていることがわかりますが、新しいロケーションが見つからないだけです。onLocationChanged() は呼び出されません。

奇妙なことに、Google マップは新しいネットワーク ロケーションを問題なく取得できます。アプリを再起動/再インストール/データを消去しても問題は解決しません。それを解決する唯一のことは、電話を再起動することです。

これは、3 つの異なるデバイス (2 つの ICS、1 つの JB) で発生しました。

同様の問題ですが、ここではうまく表現されていません。

0 投票する
1 に答える
906 参照

android - Android Map API 2.0 - callback that myLocation changed?

I don't think it is possible w/out actually using a LocationProvider, but figured I would see if anyone had any thoughts.

Basically I have an app which has a PageView w/ a fragment which contains a the new MapView 2.0

I can easily pull the my Location by way of getMyLocation from the GoogleMap object.

I have had issues in past; across some devices, using both NetworkLocation & GpsLocation providers at the same time. Since I can just pull my location from the GoogleMap, I get a simple way to check my location.

My only issue is that I can watch for map panning to update the map by handling onCameraChanged, but it does not handle the location changing inside the map.

My current implementation is that I have a MapView and LocationProvider.. The location provider is in a service, and is set to update based on a user determined time (1,5,10,15,30,60 seconds). The activities connect to the service via AIDL, if there is >0 connected activities the locationProvider is enabled, if not, it turns off. This really has little bearing to the Google Map though, if we don't handle loss of GPS signal the same as Google maps, the location we get is different than the Google maps.

My first of 3 options: get a provider, and pass that in where I could get a callback on location change (did not really want to do this). This would involve be by way of LocationSource..

Second option get the current location provider that I am using in my current service, and each time it updates, just grab the location from the map. I suppose this would work, but seems a bit redundant, and still have issue of managing LocationProviders when screen is turned off etc.. (Don't have to do that w/ google map)

The other option would be to have a service that is passed an interface to the map object which can query the current location. And do so every x seconds that the user has indicated.. I can reuse most of the service for this, would just have to set it up to keep calling.

The other thing I was thinking of was maybe just using a passive provider to update the current location, from using the current MapView.

My only other consideration is Spoofing: I want to try and prevent location spoofing. I can make it so we don't allow Mock Locations. But that does not mean it can't be spoofed still.

So... Any thoughts would be greatly appreciated. Thanks.

0 投票する
1 に答える
1544 参照

android - ネットワーク プロバイダーではなく、GPS プロバイダーから位置情報にアクセスするにはどうすればよいですか?

最高のプロバイダーから場所を取得しようとしています。GPSを有効にしました。また、緯度と経度を印刷するときは、ネットワーク プロバイダーから取得しています。

私の質問は:

GPS が有効になっている場合は、GPS を介して場所を 30 秒間検索します。その後、精度が 200 メートル未満になったら、それを使用します。精度が 200 メートルを超える場合は、もう一度検索して、ネットワーク プロバイダーから始めます。

その後、両方の精度を比較し、より正確なプロバイダーのデータを取得します。

これが私のコードです:

LocationUtil.java

CaptureMain.java

マニフェストに追加された権限:

0 投票する
1 に答える
1267 参照

android - Androidロケーションマネージャーは毎回同じgps座標を返します

電話の場所をサーバーに送信するアプリを作成しています。私が抱えている問題は、アプリを起動するたびに電話がまったく同じgps座標を提供することです。再起動すると座標が変わる可能性がありますが、最初の座標が送信された後、アプリが再起動されるまで同じものが1回送信されます。

コード:

緯度と経度はすべてのログ猫の投稿で同じであり、時間(1980年頃からのミリ秒)も同じです。

私のアプリは一度場所を取得し、再び位置を取得しようとしないようです。

0 投票する
1 に答える
1497 参照

android - ユーザーが位置情報を取得するのに長時間待たされるのを止めるにはどうすればよいですか?

ユーザーの現在の位置に基づいて最も近い場所を取得する GPS Android アプリケーションを構築しています。

これは私のアプリケーションが行うことです:

  • GPS またはネットワークが利用可能かどうかを確認する
  • どちらも利用できない場合は、何もしないでください。それ以外の場合は、最初に GPS があるかどうかを確認し、そうでない場合はネットワークを確認します。
  • それらのいずれかを使用した後、現在の場所を取得してサーバーに送信します。
  • サーバーからデータを取得して UI を更新すると、それ以降の場所の更新のリッスンを停止します。もう一度開始する更新ボタンを押すまでは、1 回で十分です。

私がやりたいこと:

  • GPS またはネットワークが場所の取得に失敗した場合 (たとえば 2 分)、プロバイダーを切り替えます。ユーザーを長時間待たせたくありません。

  • また、両方のプロバイダーを使用して、そこから最も正確なものを取得できるとよいでしょう。http://developer.android.com/guide/topics/location/strategies.htmlを見て、isBetterLocation メソッドを見ました。このメソッドをアプリケーションにどのように統合しますか? どのように、どこで、いつ呼び出す必要があるのか​​ 理解できません。isBetterLocation() では、Network と GPS の両方を同時に呼び出す必要があると思います。私のアプリケーションが正確さのために両方をリッスンするのはいいことです。どうすればいいですか?それらのいずれかが利用できない場合はどうなりますか?

これが私のコードの一部です:

これがonLocationChanged方法です。緯度/経度の値を取得してサーバーに送信し、適切な処理を行います。

0 投票する
4 に答える
1343 参照

android - アンドロイド。検出された位置が GPS またはネットワーク プロバイダーからのものかどうかを知る方法

GPS とネットワーク プロバイダーの両方から位置を検出し、Google マップに表示するアプリケーションを実装しようとしています。これは成功しましたが、質問があります。Activity の onCreate() でプロバイダーを取得します (LocationListener を拡張します)。

それは正常に動作します。私の問題は、onLocationChange() が呼び出されたときに、それを呼び出したプロバイダーが GPS または NETWORK である場合、別の方法で動作する必要があることです。どちらかを知る方法はありますか?より明確にするために:

が呼び出されたときonLocationChanged(Location location)に、どのプロバイダーが呼び出しを行ったかを知る機会はありますか? プロバイダー文字列でを使用しようとしましたifが、機能しないようです。

0 投票する
1 に答える
594 参照

blackberry - 連続GPS位置の間隔値を更新します

一定の間隔で場所を更新することになっているBlackBerryアプリケーションに取り組んでいます。間隔の値は、スライダーから選択/変更できます。1分、2分、5分、30分などの間で変化します。最初のロード(アプリの起動)では、ロケーション間隔は30秒です。この後、スライダーの値を永続ストアに保存し、設定された間隔に応じて場所が更新されます。場所を更新するために実行されているバックグラウンドスレッドは次のとおりです。

これに加えて、クリックするとすぐに位置情報の更新の取得を開始する「更新」ボタンが利用可能です。このボタンは、場所を取得するための別のクラスであるメソッドを呼び出します。方法は次のとおりです。

私が直面している問題:

1)間隔値は変更されません。永続ストアから次のように値を選択して、変更を実装しています。

このページへのナビゲーションは30分の値を挿入するため、これが空になることはありません。

2)「更新」ボタンをクリックすると、バックグラウンドスレッドがキャンセルされたように見えます。間隔値で実行されなくなりました。

作成されたロケーションプロバイダーのインスタンスは1つだけであり、「更新」を使用すると、ロケーションの取得後にキャンセルされ、バックグラウンドスレッドが停止することを読みました。これは本当ですか?はいの場合、どうすれば希望の結果を達成できますか。

編集:gpsInterval値は次のように読み取られます:

0 投票する
3 に答える
2872 参照

android - アンドロイド GPS キャリブレーション

GPS がオフの状態で別の都市に移動する場合など、長距離を移動する場合、オンにすると、最初の正しいポイントを取得するのに非常に時間がかかります。

たとえば、gps プロバイダーに登録すると、最初の onLocationChanged 呼び出しまで最大 10 分かかる可能性があります。

ネットワーク プロバイダーの応答は速くなりますが、精度は低くなります。

GPS プロバイダーを支援する方法はありますか? おおよその位置 (ネットワーク プロバイダーからの位置) を指定して、自分の位置をより速く見つけられるようにするには?

彼らのアプリは、GPSプロバイダーにのみ登録する基本的なアプリよりも速く私の場所を見つけるため、Googleマップはある種の最適化を行ったと思います.

まともな精度 (<30 m) で自分の位置を取得するプロセスを加速する方法はありますか?