如何计算BlackBerry 10应用程序中的语音和数据使用情况

时间:2014-02-03 07:48:43

标签: blackberry-10

您好我正在开发BlackBerry 10平台中的应用程序,该应用程序将在特定时间内计算用户设备的数据使用情况和语音使用情况。

需要对此进行一些可行性检查,如下所述

  • BB10 API是否支持数据使用计算?如果是,我可以将3G /蜂窝数据与WiFi数据区分开来吗?如果是,我该如何实现这一目标?

  • 如何计算BB 10应用程序中的语音使用情况?语音使用只是在特定时间段内发生的所有呼叫的持续时间

  • 是否有任何API BB10提供,我可以通过它检查设备当前是否处于漫游状态?

如果可以在BB 10应用程序中完成,请告知我们

1 个答案:

答案 0 :(得分:1)

BB10 API是否支持数据使用计算?
是的,there are a few for API's for this
我可以将3G /蜂窝数据与WiFi数据区分开来吗?
你能做到的。

1)将以下行添加到.pro文件中:

LIBS += -lbbdevice

2)确保包括:

#include <bb/device/NetworkDataUsage>

3)仅为蜂窝网络

获取数据使用权
 bb::device::NetworkDataUsage *nduCell = new bb::device::NetworkDataUsage("cellular0");
 nduCell ->update();
 quint64 bytesSent      = nduCell ->bytesSent();
 quint64 bytesReceived  = nduCell ->bytesReceived();

4)仅为 wifi

获取数据使用权
bb::device::NetworkDataUsage *nduWifi = new bb::device::NetworkDataUsage("tiw_sta0");
nduWifi ->update();
quint64 bytesSent       = nduWifi ->bytesSent();
quint64 bytesReceived   = nduWifi ->bytesReceived();

这将在设备启动后为您提供数据使用。 您需要定期调用ndu-&gt; update()以获取最新的数据使用情况统计信息。

额外信息:
更改NetworkDataUsage的参数会更改它所关联的界面:
cellular0 == Cellular
tiw_sta0 == Wifi
ecm0 == USB

要找出您设备上可用的界面:
1)将以下行添加到.pro文件中:

 QT += network

2)确保包括:

#include <QNetworkInterface>

3)显示可用的接口

QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces();
for (int i = 0; i < interfaces.size(); i++) {
   qDebug() << QString::number(i) + ": " + interfaces.value(i).humanReadableName();
}

如何计算BB 10应用程序中的语音使用情况?语音使用只是在特定时间段内发生的所有呼叫的持续时间

这可以使用Phone类来完成。 有信号调用void callUpdated(const bb :: system :: phone :: Call&amp; call,)使用它,我们可以知道是否收到来电或拨打电话。

通过这个和Timer类的组合,我们可以计算设备的语音使用情况。 (此代码未经过测试)