if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
if(hasPermissionToReadNetworkStats()) {
Log.e("Info","========222=========");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Log.e("Info","========333=========");
NetworkStatsManager networkStatsManager = (NetworkStatsManager) getSystemService(NETWORK_STATS_SERVICE);
new Thread(new Runnable() {
@Override
public void run() {
NetworkStats.Bucket bucket = null;
// 获取到目前为止设备的Wi-Fi流量统计
try {
Log.e("Info","===========444============");
bucket = networkStatsManager.querySummaryForDevice(ConnectivityManager.TYPE_WIFI, "", 0, System.currentTimeMillis());
Log.e("Info","========555=========");
} catch (RemoteException e) {
e.printStackTrace();
}
Total=bucket.getRxBytes() + bucket.getTxBytes();
Log.e("Info", "Total: " + Total);
Log.e("getRxBytes:", "Total: " + bucket.getRxBytes() );
Log.e("getTxBytes:", "Total: " + bucket.getTxBytes());
}
}).start();
----------------------------------------------------------------
private boolean hasPermissionToReadNetworkStats() {
Log.e("Info","========777=========");
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
Log.e("Info","========888=========");
return true;
}
Log.e("Info","========999=========");
final AppOpsManager appOps = (AppOpsManager) getSystemService(Context.APP_OPS_SERVICE);
int mode = 0;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
Log.e("Info","========sss=========");
mode = appOps.unsafeCheckOpRaw(AppOpsManager.OPSTR_GET_USAGE_STATS,
android.os.Process.myUid(), getPackageName());
}
Log.e("Info","========10000========="+mode);
if (mode == AppOpsManager.MODE_ALLOWED) {
Log.e("Info","========10001=========");
return true;
}
requestReadNetworkStats();
Log.e("Info","========10002=========");
return false;
}
// 打开“有权查看使用情况的应用”页面
private void requestReadNetworkStats() {
Log.e("Info","========10003=========");
Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
startActivity(intent);
}
networkstatsmanager
最新推荐文章于 2024-04-23 18:14:00 发布