2017-01-05 9 views
3

Webサービスの場所を10秒ごとに更新するアプリがあります。ただし、APIレベルが23以上のデバイスでは、15分後にドーズモードが起動しないと、ネットワーク接続が失われ、アプリケーションはさらにWebサービスに位置情報の更新を送信できなくなります。アプリケーションをホワイトリストに登録しないでドーズモードを回避する

バッテリーの最適化を無視する許可を求めてアプリをホワイトリストに追加する以外は、場所の更新を15分に1回しか許可しないほか、GPS位置情報の更新を継続して自分のウェブに送信できる他のオプションは何ですかサービス?

答えて

0

あなたはあまりにも頻繁に実行しています。ファストノーマルが30秒から60秒に1回の位置に更新される電話もありません。したがって、更新の2/3から5/6は無意味です。それを無視して、60mph進む車に乗っている場合は、10秒間に14フィート以上変更することはありません。正確に14フィートにする必要があるサーバー上では何もしていません。電話機の典型的なGPSは10メートル(30フィート以上)の精度しかありません。これは、GPSがより頻繁に更新されない理由の1つです。

ただし、そうではありません。彼らは理由のためにDozeを実装しました。バッテリーを節約します。彼らはあなたがそのバッテリーを焼きたいかどうかユーザーに尋ねることなくそれを回避することができないようにそれを設定します。私は間違いなく15分が遅すぎる理由は間違いなく理解していますが、ユーザーに尋ねて、あなたのアプリが価値があるかどうかを判断させてください。

+0

私がSOを作っているのは、10秒か1分かにかかわらず、ドーズモードのときにどのようにネットワーク要求を出すことができると思いますか?たとえば、ドライバのナビゲーションアプリを開発している場合などです。したがって、GCM優先度の高いメッセージを送信することによるものですか? – AshesToAshes

+0

@AshesToAshes彼らはホワイトリストに登録されることを要求します。彼はそれなしでそれをやろうとしている。 (GoogleマップはOEMによってホワイトリストに登録されています)。それはあまりにも頻繁にそれについて私はそれが指摘されているので、彼は無意味なことをやってネットワーク帯域幅とバッテリーの電力を無駄に停止します。 –

+0

非常に真実ですが、これを回避してアプリをホワイトリストに追加する必要があります。 – AshesToAshes

1

ドーズモードを克服することは非常に不道徳ですが、アプリがバッテリーの問題をユーザーに説明できる場合は、アプリをホワイトリストに登録する方がよいでしょう。

もう1つの方法は、ドーズモードが発生しないように画面をオンにすることです。

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

このコードは画面をオンにします。ポケットモンスターのバッテリーセーバーのような黒または空のレイアウトを作成してください。

Official Dozeのドキュメントでは、ユースケースのホワイトリストを作成できます。それを確認してくださいhere

+0

私たちはその参照へのリンクを取得できますか? – AshesToAshes

+1

https://developer.android.com/training/monitoring-device-state/doze-standby.html –

関連する問題