問題タブ [android-connectivitymanager]

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 投票する
2 に答える
284 参照

java - Android のデータセーバーがオフのときに「BLOCKED」ネットワーク状態を取得する

Android 7.0 を実行している特定のタブレットで使用するアプリを開発しています。私は a を使用しServiceて定期的な s を送信していますDatagramPacketモバイル ネットワークしか使用できませんConnectivityManager、 、NetworkInfoを使用して接続ステータスを確認しますDetailedState。次のコードでネットワークの状態を取得します。

  • タブレットが接続されていて、画面がオンまたはオフの場合、CONNECTED状態になります。
  • テーブルが取り外され、画面がオンの場合、CONNECTED 状態になります。
  • テーブルが取り外され、画面がオフの場合、ブロック状態になります。

私のタブレットでは、データセーバーがオフになっています。念のため、画面がオフになったときに制限がないことを確認するテストを実行しました。ネットワークがブロックされている場合でも、cm.getRestrictBackgroundStatus()常に 1 を返します。これはRESTRICT_BACKGROUND_STATUS_DISABLEDです。

では、なぜネットワークがブロックされているのでしょうか。私のアプリには特別な権限が必要ですか? タブレットには特別な設定が必要ですか?