访问Android手机中使用的手机数据和wifi数据记录
我想在应用程序级别访问android手机中的数据使用情况 在我的带有棒棒糖5.1的手机中,它提供了一个漂亮的数据使用和限制使用设置的图表。我认为这个功能来自Kitkat更新访问Android手机中使用的手机数据和wifi数据记录,android,Android,我想在应用程序级别访问android手机中的数据使用情况 在我的带有棒棒糖5.1的手机中,它提供了一个漂亮的数据使用和限制使用设置的图表。我认为这个功能来自Kitkat更新 我想要这个记录,如果没有公共API,还有其他方法吗?首先,要获取数据,您应该使用USAGestManager或ActivityManager,具体取决于您使用的SDK版本。以下是获取当前运行的应用程序名称的简单示例: String currentApp = "NULL"; if (androi
我想要这个记录,如果没有公共API,还有其他方法吗?首先,要获取数据,您应该使用USAGestManager或ActivityManager,具体取决于您使用的SDK版本。以下是获取当前运行的应用程序名称的简单示例:
String currentApp = "NULL";
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
UsageStatsManager usm = (UsageStatsManager) activity.getSystemService(Context.USAGE_STATS_SERVICE);
long time = System.currentTimeMillis();
List<UsageStats> appList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 1000, time);
if ((appList != null) && (appList.size() > 0)) {
SortedMap<Long, UsageStats> mySortedMap = new TreeMap<Long, UsageStats>();
for (UsageStats usageStats : appList) {
mySortedMap.put(usageStats.getLastTimeUsed(), usageStats);
}
if ((mySortedMap != null) && (!(mySortedMap.isEmpty()))) {
currentApp = mySortedMap.get(mySortedMap.lastKey()).getPackageName();
}
}
} else {
ActivityManager activityManager = (ActivityManager) currentlyDisplayedScreen.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> services = activityManager.getRunningTasks(Integer.MAX_VALUE);
currentApp = services.get(0).topActivity.getPackageName().toString()
}
我的假设是,您希望在自己的应用程序中包含该图表,但如果您愿意,您可以简单地启动设备的Android数据使用屏幕,并具有适当的意图:
但是,您只需导航到外部屏幕。试试这个
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" tools:ignore="ProtectedPermissions" />
public class StatisticsChartView extends View {
...
@Override
protected void onDraw(Canvas canvas) {
if (values != null) {
float sliceStartPoint = 200;
path.addCircle(rectF.centerX(), rectF.centerY(), 250, Direction.CW);
canvas.clipPath(path, Op.DIFFERENCE);
...
}