我正在尋找記錄3G或2G上的Android手機的分組數據會話數量在給定時間段內的數量。如何檢測Android手機上的移動數據會話的結束
我希望在TelephonyManager.DATA_DISCONNECTED事件在PhoneStateListeners對應於數據使sesion的結束,但它並不像我的運營商支付費用我會(彈出信息這涉及數據後使用)在多個DATA_DISCONNECTED事件之後。
我正在尋找記錄3G或2G上的Android手機的分組數據會話數量在給定時間段內的數量。如何檢測Android手機上的移動數據會話的結束
我希望在TelephonyManager.DATA_DISCONNECTED事件在PhoneStateListeners對應於數據使sesion的結束,但它並不像我的運營商支付費用我會(彈出信息這涉及數據後使用)在多個DATA_DISCONNECTED事件之後。
您需要使用BroadcastReceiver
來偵聽數據斷開事件或數據連接事件。 首先您需要在AndroidManifest.xml
中添加接收器。
<receiver
android:name=".Networkconncted"
android:enabled="true">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
接下來,你需要創建延伸BroadcastReceiver
類,當數據連接/斷開這個類會被調用。
public class Networkconncted extends BroadcastReceiver {
public static final String key = "networkInfo";
public static final String disconnected = "DISCONNECTED";
public static final String MOB_INT = "mobile";
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
if (extras != null) {
String value = extras.get(key).toString();
Log.v("netappcheck", value);
String temp[] = value.split(",");
if (temp[0].toLowerCase().contains(MOB_INT)) //check if mobile n/w
if (temp[1].contains(disconnected)) {
Toast.makeText(context,"data disconnected",Toast.LENGTH_SHORT).show();
//do something when data is disconnected
} else {
Toast.makeText(context,"data connected",Toast.LENGTH_SHORT).show();
//do something when data is connected
}
}
}
}
當廣播接收器被稱爲intent.getExtras().get(key)
將返回以下值:
[type: MOBILE[EDGE], state: DISCONNECTED/DISCONNECTED,
reason: (unspecified), extra: airtelgprs.com, roaming: false,
failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]
在類型字段中提到的網絡類型連接,在連接時/ disconected WiFi類型將返回WIFI[]
,當連接到移動網絡(3G,EDGE等),類型字段將返回MOBILE[]
。
狀態字段提到連接狀態。
變量temp []將類型置於第0個位置,狀態位於第1個位置。我們需要檢查其第0位的MOBILE
,因爲我們只需要跟蹤移動網絡連接。然後檢查第一個位置的狀態。
我在Android 5.0.1和Android 4.0.4中測試它工作正常。 更多信息here
老兄,我很欣賞你的答案,但看起來你在回答之前沒有經過這個問題。 –
那麼你的問題到底是什麼?你想要數據會話連接/斷開的大小或次數。你想澄清更多的問題 – Psypher
老兄,數據斷開與會話斷開連接不同,我不想去工程部分,但如果你留在印度嘗試使用我們的代碼,看看你有多少次獲得數據斷開事件,然後您收到來自ur運營商的彈出消息,指示數據會話結束。我檢查了它,它不止一次。 –