Android应用流量统计_APP数据及wifi流量统计源代码
2015-11-30 12:33:56  By: dwtedx

这是一个App消耗流量的统计、有wifi数据统计和移动数据统计、用柱状图和折线图体现了流量消耗的趋势直观明了、运行效果如下、有兴趣的哥们可以下载源代码看看、非常不错的、话不多说、直接上图了

APP流量统计源码


onCreate代码

protected void onCreate(Bundle savedInstanceState)
{
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_traffic);
    mCloumLayout = (LinearLayout)findViewById(R.id.traffic_cloum_content);
     AseoZdpAseo.initType(this,AseoZdpAseo.INSERT_TYPE);
    int width = 0;
    mDbManager= new DbManager(this);
    infos = mDbManager.queryTotal(DbManager.NETWORK_TYPE_WIFI);
    int i;
    long total = 0;
    for(i = 0; i < infos.size(); i  )
    {
        total  = infos.get(i).traffic;
    }
    ((TextView)findViewById(R.id.traffic_wifi_text)).setText(switchUnit(total));
    width = (infos.size()   1)*50;
    
    total = 0;
    infos = mDbManager.queryTotal(DbManager.NETWORK_TYPE_MOBILE);
    for(i = 0; i < infos.size(); i  )
    {
        total  = infos.get(i).traffic;
    }
    ((TextView)findViewById(R.id.traffic_gprs_text)).setText(switchUnit(total));
    if(width < (infos.size()   1)*50)
        width = (infos.size()   1)*50;
    
    mGeomark = new Geomark(this);
    mGeomark.setData(infos);
    mRain = new RainAnimotion(this);
    mRain.setData(infos);
    mRain.setVisibility(View.GONE);
    if(width < Utils.getScreenWidth(this))
    {
        mCloumLayout.addView(mGeomark, new LayoutParams(Utils.getScreenWidth(this), LayoutParams.WRAP_CONTENT));
        mCloumLayout.addView(mRain, new LayoutParams(Utils.getScreenWidth(this), LayoutParams.WRAP_CONTENT));
    }
    else
    {
        mCloumLayout.addView(mGeomark, new LayoutParams(width, LayoutParams.WRAP_CONTENT));
        mCloumLayout.addView(mRain, new LayoutParams(width, LayoutParams.WRAP_CONTENT));
    }
    
    findViewById(R.id.traffic_gprs).setOnClickListener(mOnClickListener);
    findViewById(R.id.traffic_titleBar_back).setOnClickListener(mOnClickListener);
    findViewById(R.id.traffic_graph_tip_image).setOnClickListener(mOnClickListener);
    findViewById(R.id.traffic_wifi).setOnClickListener(mOnClickListener);
    mTipTextView = (TextView)findViewById(R.id.traffic_graph_tip_text);
    
}


OnClickListener处理

public void onClick(View view)
{
    int id = view.getId();
    switch (id)
        {
        case R.id.traffic_gprs:
            type = "移动流量";
            infos = mDbManager.queryTotal(DbManager.NETWORK_TYPE_MOBILE);
            mGeomark.setData(infos);
            mRain.setData(infos);
            mTipTextView.setText(type   graph);
            if(isGeomark)
            {
                mGeomark.setVisibility(View.GONE);
                mGeomark.setVisibility(View.VISIBLE);
            }
            else {
                mRain.setVisibility(View.GONE);
                mRain.setVisibility(View.VISIBLE);
            }
            break;
        case R.id.traffic_titleBar_back:
            finish();
            break;
        case R.id.traffic_graph_tip_image:
            {
                if(isGeomark)
                {
                    isGeomark = false;
                    graph = "柱状图";
                    mTipTextView.setText(type   graph);
                    mGeomark.setVisibility(View.GONE);
                    mRain.setVisibility(View.VISIBLE);
                }
                else {
                    isGeomark = true;
                    graph = "折线图";
                    mTipTextView.setText(type   graph);
                    mGeomark.setVisibility(View.VISIBLE);
                    mRain.setVisibility(View.GONE);
                }
                break;
            }
        case R.id.traffic_wifi:
            type = "wifi数据";
            infos = mDbManager.queryTotal(DbManager.NETWORK_TYPE_WIFI);
            mGeomark.setData(infos);
            mRain.setData(infos);
            mTipTextView.setText(type   graph);
            if(isGeomark)
            {
                mGeomark.setVisibility(View.GONE);
                mGeomark.setVisibility(View.VISIBLE);
            }
            else {
                mRain.setVisibility(View.GONE);
                mRain.setVisibility(View.VISIBLE);
            }
            break;
        default:
            break;
        }
}


权限申请

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />


源代码下载链接: http://dwtedx.com/download.html?bdkey=s/1dDBINux 密码: s9pr

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+