我正在尝试开发一个可以从特定包中获取网络统计数据的应用,但我遇到了这些问题:
NetworkStats:用户10412和当前进程都没有 android.permission.READ_NETWORK_USAGE_HISTORY。
以下是代码:
try {
TelephonyManager tm;String subscriberID;
NetworkStatsManager networkStatsManager;
NetworkStats networkStats;NetworkStats.Bucket bucket;
tm = (TelephonyManager) mContext.getSystemService(mContext.TELEPHONY_SERVICE);
subscriberID = tm.getSubscriberId();
networkStatsManager = mContext.getSystemService(NetworkStatsManager.class);
networkStats = networkStatsManager.queryDetailsForUid
(typeMobile, subscriberID, dtBegin, dtEnd, uidPackage);
if(networkStats !=null){
while (networkStats.hasNextBucket()) {
bucket = new NetworkStats.Bucket();
networkStats.getNextBucket(bucket);
Log.d("Bucket RX:",bucket.getUid()+" -" +String.valueOf(bucket.getRxBytes()));
Log.d("Bucket TX:",bucket.getUid()+" -" +String.valueOf(bucket.getTxBytes()));
}
}
}
catch (Exception ex){
Logger.e(ex.getMessage());
}
答案 0 :(得分:0)
READ_NETWORK_USAGE_HISTORY
权限仅授予系统应用程序。因此,除非您使用的是root手机,否则您将无法使用它。唯一的出路是使用自API级别8以来可用的TrafficStats。
答案 1 :(得分:0)
Devices without "Apps using Usage Data" or android.settings.USAGE_ACCESS_SETTINGS intent