모든 앱의 네트워크 트래픽 통계를 얻으려고합니다. 방금 장치에있는 모든 응용 프로그램의 전체 네트워크 트래픽을 인쇄합니다. 코드는 안드로이드 4.4 및 5.1 장치에서 잘 작동하지만 안드로이드 6.0 장치에서는 항상 모든 응용 프로그램에 대해 0을 반환합니다. 누구나 이것이 안드로이드 6.0 기기에서 왜 일어 났는지 말해 주실 수 있습니다.getUidTxBytes (int uid)는 android 6.0에서 항상 0을 반환합니다.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for(ApplicationInfo app : getPackageManager().getInstalledApplications(0)){
long tx = TrafficStats.getUidTxBytes(app.uid);
long rx = TrafficStats.getUidRxBytes(app.uid);
long total = tx + rx;
Log.e("total data of ", app.packageName + " = " + total);
}
}
은 여기 내 doc에 따르면 AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mts.trafficstatsdemo">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
정말 고마워요. –
질문은 android 6 (M)에 관한 것입니다 ... 제한이 없어야합니다. 나는 안드로이드 6에이 정보를 검색하는 장치가 있습니다.이 장치는 제한이 없으며 안드로이드 7에 영향을줍니다. –