簡體   English   中英

如何在Android手機上檢測移動數據會話的結束

[英]How to Detect the End of Mobile Data Session on Android Phones

我希望記錄給定時間內3G或2G上的Android手機具有的分組數據會話數。

我希望PhoneStateListeners中的TelephonyManager.DATA_DISCONNECTED事件與數據會話的結束相對應,但是不希望如此,因為我的操作員向我收取了多個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]

類型字段表示連接的網絡類型,當連接/斷開連接的wifi類型將返回WIFI[] ,當連接到移動網絡(3G,EDGE等)時,類型字段將返回MOBILE[]

狀態字段提到連接狀態。

變量temp []將類型置於第0位,狀態置於第1位。 我們需要檢查其MOBILE在第0位,因為我們只需要跟蹤移動網絡的連通性即可。然后檢查第1位的狀態。

我在Android 5.0.1和Android 4.0.4中對其進行了測試,效果很好。 更多信息在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM