Abend alle, bekam ich eine Möglichkeit, das zu tun ...
Zuerst habe ich eine Klasse erstellen, die BroadcasrReceiver erstreckt, wie folgt aus:
Manifest Definition:
<receiver android:name=".core.CoreReceiver" android:enabled="true" android:exported="false">
<intent-filter>
<action android:name="android.net.ConnectivityManager.CONNECTIVITY_ACTION" />
<action android:name="android.net.wifi.STATE_CHANGE" />
</intent-filter>
</receiver>
Codes:
/**
* @author me
*/
public class CoreReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
if (Constants.phone == null) {
// Receive [network] event
Constants.phone=new PhoneListen(context);
TelephonyManager telephony=(TelephonyManager)
context.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(Constants.phone, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);
}
WifiManager wifi=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
boolean b=wifi.isWifiEnabled();
if (Constants.STATUS_WIFI != b) {
// WiFi status changed...
}
}
}
und Telefon Statistiken Zuhörer unten ...
public class PhoneListen extends PhoneStateListener {
private Context context;
public PhoneListen(Context c) {
context=c;
}
@Override
public void onDataConnectionStateChanged(int state) {
switch(state) {
case TelephonyManager.DATA_DISCONNECTED:// 3G
//3G has been turned OFF
break;
case TelephonyManager.DATA_CONNECTING:// 3G
//3G is connecting
break;
case TelephonyManager.DATA_CONNECTED:// 3G
//3G has turned ON
break;
}
}
}
Schließlich ist hier meine Logik
- Sammeln Sie die Anzahl in SQLite DB.
- Sammeln Sie alle App-Netzwerknutzung über TrafficStats alle 1 Minute, nur wenn 3G eingeschaltet ist.
- Wenn 3G ausgeschaltet ist, hören Sie auf zu sammeln.
- Wenn beide 3G & WiFi ON sind, hören Sie auf zu sammeln.
Wie ich weiß, Netzwerkverkehr wird nur über WiFi gehen, wenn beide 3G & WiFi verfügbar sind.
Welches System verwenden Sie? ab mindestens ICS forward können Sie die Datennutzung von 3g/Handy sehen; Wlan; oder alles kombiniert. – SunnySonic
Android 2.2 oder höher – RRTW