問題タブ [networkstatsmanager]
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.
android - NetworkStatsManager を使用してモバイル データの使用履歴を取得する
データ使用履歴を知りたいのですが、「新しい」android-6NetworkStatsManager
が肯定的に見えることに気付きました (TrafficStats
しばらく使用しましたが、再起動前のものはカバーされません)。
API ドキュメントから:
注: この API には PACKAGE_USAGE_STATS 権限が必要です。これはシステム レベルの権限であり、サードパーティ アプリには付与されません。ただし、許可を宣言することは API を使用する意図を意味し、デバイスのユーザーは設定アプリケーションを介して許可を与えることができます。プロファイル所有者アプリには、管理するプロファイルのデータを照会するアクセス許可が自動的に付与されます (つまり、querySummaryForDevice(int, String, long, long) を除くすべてのクエリに対して)。同様に、デバイス オーナー アプリは、プライマリ ユーザーの使用状況データにアクセスできます。
データを使用するアプリではなく、集計レベルでのデータ使用量を知りたいので、次のように使用しようとしました。
残念ながら、それは次をスローしSecurityException
ます:
サードパーティのandroid.permission.READ_NETWORK_USAGE_HISTORY
アプリには許可されていません。そのため、これは行き止まりのように見えました。
ただし、内部を少し掘り下げたところ、アクセス許可を要求せずに内部/隠し API を使用して同じことを実行できることがわかりました。
私は本当にパブリック API で同じことをしたいのですが、どうすればそれを行うことができますか?
java - Android モバイルの使用履歴 NetworkStatsManager
私は Android 6.0 用のアプリを作成しています。新しいクラス NetworkStatsManager を使用してモバイル データの使用状況を取得したいと考えています。
マニフェストに必要なすべての権限を追加し、権限のランタイムを必要とします。
メソッドを呼び出すと:
WIFI の使用に適した値を返します。
しかし、TYPE_WIFI を TYPE_MOBILE に置き換えると、結果は常に 0 になります。
android - 新しい NetworkStatsManager クラスを使用して、すべての UID のデータ使用レポートを取得する方法
モバイルおよびwifiインターフェースを介したアプリごとのデータ使用レポートを必要とするデータマネージャーアプリを構築しています。
「NetworkStatsManager.querySummary」メソッドを使用しようとすると、すべてではなく一部の UID の使用状況レポートしか取得できません。メソッドのAPIドキュメントには記載されていますが
呼び出し元のユーザーに属する uid のみを含むようにフィルター処理された結果
どのUIDが呼び出し元のユーザーに属し、どれが属していないかはわかりません。違いと、この新しい「NetworkStatsManager」クラスを使用してすべての UID のデータ使用レポートを取得する方法を理解してください。
android - NetworkStatsManager の queryDetailsForUid() メソッドは、常にすべてのアプリの古いネットワーク使用状況を返します
ネットワークの使用状況を取得するコードを作成しましたが、 queryDetailsForUid(int networkType, String subscriberId,long startTime, long endTime, int uid) このメソッドは常に古いデータを返します。NetworkstatsManager
APIを使用して更新されたデータを取得するにはどうすればよいですか?
android - NetworkStatsManager.queryDetailsForUid が TrafficStats と「同じ」値を取得しない
ネットワークインターフェイスと特定のアプリケーション(pex Chrome)のトラフィックを測定するために、新しいNetworkStats
クラスを比較していますTrafficStats
デバイスの起動以降TrafficStats
の値があるため、実行しているテストは次のとおりです。
- 電話を再起動します。
- クロムを開きます。
- 10 MB のデータをダウンロード (WiFi 経由)。
で取得したデータTrafficStats
は次のとおりです。
私はアクセス許可を付与し、NetworkStats
取得した値は次のとおりです。
データを取得するコードNetworkStats
は次のとおりです。
どこgetDataFromBucket
にある:
バケットは 2 時間からあるとどこかで読んだので、次のコードを追加しました。
しかし、 とにはバケットがないためwifiBucketForApp
、 chrome のデータはまだ 0 です。mobileBucketForApp
bootTime
1日の始まり (私の国では 18:30) に設定すると、次のようになります。
Chrome アプリTrafficStats
からデバイスを起動して以来、同じ値を取得していない理由を知っている人はいますか?NetworkStatsManager