問題タブ [android-gps]
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.
java - Lollipop を除くすべてのデバイスで動作する GPS
ずっと前に、デバイスの位置を知る必要がある Android アプリケーションをプログラムしました。デバイスの位置へのアクセスを抽象化する目的で、すべての位置関連のものを管理し、現在のデバイスの位置を保存し、ユーザーに通知するために GPS またはインターネットの状態が変化したときにメイン アクティビティを呼び出すクラスをプログラムしました。
このアプリケーションは、Lollipop が付属する Samsung Galaxy A5 2016 を購入するまで、すべてのデバイスで動作し続けました。これは、私がテストしたすべての Jellybean デバイスと古い Android バージョンで動作しますが、A5 2016 では、ユーザーは GPS ステータスの変更を通知されますが、このクラスに保存されている場所は常に null であるため、メソッド onLocationChanged() は機能していてはなりません. 位置情報を取得するためのこのクラスがすべてのデバイスで機能していたのに、Lollipop では機能しなくなったのはなぜですか? 本当にイライラします。Android アプリケーションは、前方互換性があると想定されています。Lollipop での動作を停止した、位置情報を管理するクラスのコードを次に示します。Lollipop の前は、場所はタイプのクラスのインスタンス属性に保存されていましたがLocation
、Lollipop 以降、場所は保存されなくなりました。
android - service 内の gps の requestPermissions() 。エラー:「ロケーション プロバイダーには ACCESS_FINE_LOCATION 権限が必要です。」
私が直面している問題は、私が書いているサービスを介してアプリケーションに gps 権限を与えることです。これを達成するための例を見つけようとしましたが、例はActivityでgpslocation finderを書くことを示していますが、この場合、これをサービスに実装したいと思います。
サービスコードは次のとおりです。
Manifest.xml の私のコードは次のとおりです。
ここに、直面しているエラーを示すエラーログを添付しました。「ロケーション プロバイダーには ACCESS_FINE_LOCATION 権限が必要です」というエラーが表示されます。 エラーログ:
android - requestLocationUpdates が常に場所を取得するようにする方法は?
Android のロケーション マネージャーを使用していますが、GPS をオンにした直後に requestLocationUpdates を使用しようとすると、null のロケーションが返されることに気付きました。requestlocationupdates を呼び出したときに常に有効な場所を取得するにはどうすればよいですか?
私のコードは次のとおりです。
android - 一部のアプリケーションを開いた後、Android アプリとそのサービスが強制終了される
ボタンを押したときにユーザーの位置を追跡するアプリを開発しています。LocationListener を使用して場所を記録するサービスを実装しましたが、うまく機能しますが、いくつかの厳しいテストを行っており、いくつかのアプリケーションを開くと、アプリとサービスが Android によってランダムに強制終了されます。
しかし、私は Wikiloc というアプリをダウンロードし、同じ重いテストを行っています。複数のアプリを開いても、このアプリは決して強制終了されず、アプリが非表示にできない通知を作成することがわかります。アプリがシステムによって強制終了されないという事実に関連している可能性はありますか?
アプリでこれを達成するにはどうすればよいですか? 通知トリックを行う必要がありますか? もしそうなら、それはどのように実装されていますか?
android - requestLocationUpdates() メソッドは、場所を変更せずに更新を提供しています - Android
デバイスの位置の変化を検出するonLocationChanged
方法を使用しました。LocationListener
メソッドでは、requestLocationUpdates
最小時間 = 5 秒、最小距離 = 2 メートルに設定しましたがrequestLocationUpdates
、デバイスがまったく動かされていない (静止している) 場合でも、メソッドは更新を提供しています。私のコードの問題は何ですか?
この私のコード:
.
.
android - onLocationChanged(Location location) が機能しない - Android
場所の変更 (デバイスの場所) が少なくとも 1 メートル (ほぼ 40 インチ) の場合、または少なくとも 30 分が経過した場合に更新を取得するためmanager.requestLocationUpdates("gps", 1800000, 1, new LocationDetector());
にクラスのメソッドを使用しました。しかし、デバイスの位置を 1 メートル (またはそれ以上) 変更すると、更新が受信されません。では、何が問題になるのでしょうか?伝えてください。LocationManager manager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
コード: