游戏在android平台,需要计算用户联网是的数据流量,开始想用android平台的api来计算,不过没搞懂,咨询大牛,建议用截取数据的方式,就是联网时上传和接收的数据量的byte数量累加到一个 dictionary中,在关闭网络的时候,将累加的总量存储到设备的数据库中。这样计算只是计算的和游戏相关的数据量,不过对于玩家只是了解的层次,也是可以的了。
介个是简单的样例
using UnityEngine;
using System.Collections.Generic;
using System;
public class Flow : ScriptableObject
{
static Dictionary<int, int> DicFlow = new Dictionary<int, int>();
static int key = 0;
public static void AddFlow(int b)
{
if (!DicFlow.ContainsKey(key))
{
DicFlow.Add(key, b);
key++;
}
}
static float GetFlow()
{
long flow = 0;
for (int i = 0; i < key; i++)
{
if (DicFlow.ContainsKey(i))
{
flow += DicFlow[i];
}
}
return (float)flow / 1024 / 1024;
}
public static void UploadFlowToLocalTable()
{
try
{
float f = GetFlow();
//上报到服务器
Global.db.CheckAndOpen();
Global.db.ExecuteQuery("INSERT INTO traffic_record (traffic ) VALUES(" + f+ ")");
DicFlow.Clear();
key = 0;
Global.db.CloseSqlConnection();
}
catch (Exception e)
{
Debug.Log(e.ToString());
Global.db.CloseSqlConnection();
}
}
}