按应用程序划分的Xamarin交通网络数据使用情况

z31licg0  于 2023-11-15  发布在  其他
关注(0)|答案(1)|浏览(102)

我正在创建一个Xamarin应用程序Visual Studio 2022,用于使用Android.Net. Google Stats监控特定Spotify和Google Maps应用程序的网络流量,并将数据输出到CSV文件,下载和上传以兆字节(MB)为单位,下载和上传速度以MB每秒为单位。
enter image description here
我在使用库Android.NET. WebicStats时遇到问题,该问题表明该方法不存在“using Android.NET. WebicStats;”
我也无法获得应用程序的uid,例如spotify,使用方法:int spotifyUid = picStats. GetUidRxId(picType.移动的,PackageManager.GetPackageUid(“com.spotify.android“));
错误是:CS 0138“using namespace”指令只能应用于命名空间;“Using Stats”是一种类型,而不是命名空间。请考虑“using static”NetUsage指令
CS 0103当前NetUsage上下文中不存在名称“PandicType”

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

个字符
我已经尝试过使用其他方法,但我还没有能够解决这个问题。有人知道如何解决这个问题吗?我需要一个在Android环境中运行的应用程序来监控特定的应用程序,并将此数据外部化以进行监控。

u4vypkhs

u4vypkhs1#

错误是:CS 0138“using namespace”指令只能应用于命名空间;“Using Stats”是一种类型,而不是命名空间。请考虑“using static”NetUsage指令
正如Jason提到的,TrafficStats是一个类型,而不是一个命名空间。而TrafficStats是来自Android.Net命名空间的一个类。
因此,您可以注解掉以下代码:

//using Android.Net.TrafficStats;

字符串
下面的命名空间就足够了:

using Android.Net;


此外,从文档TrafficStats.GetUidRxBytes(Int32) Method中,我们知道我们应该传递一个int data作为方法TrafficStats.GetUidRxBytes的参数,而不是两个:

// Get the UID of the Spotify app based on its package name
//int spotifyUid = TrafficStats.GetUidRxBytes(TrafficType.Mobile, PackageManager.GetPackageUid("com.spotify.android"));

相关问题