如何判斷當前手機網絡是cmwap還是cmnet?


       如何想知道當前手機網絡是 CMWAP 還是CMNET?首先咱們來了解一下APN的概念

        APN的英文全稱是Access Point Name,中文全稱叫接入點,是您在通過手機上網時必須配置的一個參數,它決定了您的手機通過哪種接入方式來訪問網絡。用來標識GPRS的業務種類,目前分為兩大類:CMWAP/UNIWAP/3GWAP(通過GPRS訪問WAP業務)、CMNET/UNINET/3GNET(除了WAP以外的服務目前都用CMNET,比如連接因特網等)。

      現網中,APN=cmnet就代表internet, APN=cmwap就代表專用WAP數據網絡,當然各個運營商可能名字不一樣,如聯通是uniwap,uninet等。
      現在我們涉及到的APN具體有兩種,一種是通過手機瀏覽器上網使用的,另一種是通過客戶端軟件來登陸服務器。中國聯通的2G業務WAP瀏覽器中使用的APN為“UNIWAP”,3G業務WAP瀏覽器使用的APN為“3GWAP”;中國聯通的2G上公網使用的APN為“UNINET”,3G業務上網卡及上公網使用的APN為“3GNET”。 中國移動上內網的APN為“CMWAP”,上網卡及上公網使用的APN為“CMNET”。 中國電信上內網的APN為“CTWAP”,上網卡及上公網使用的APN為“CTNET”。

        關於Android代碼中如何獲得當前手機網絡是cmwap還是cmnew,下面上一段代碼,不解釋,自己看去吧。

      

package lab.sodino.net;

import java.net.InetAddress;

import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.widget.ScrollView;
import android.widget.TextView;

public class NetAct extends Activity {
    private TextView textView;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        textView = new TextView(this);
        textView.setBackgroundColor(0xffffffff);
        textView.setTextColor(0xff0000ff);
        textView.setTextSize(15.0f);
        textView.setScrollBarStyle(TextView.SCROLLBARS_OUTSIDE_OVERLAY);

        ScrollView scrollView = new ScrollView(this);
        scrollView.addView(textView);
        setContentView(scrollView);
        getLocalHost();
        getWifiInfo();
        initNetworkInfo();
    }

    private void getLocalHost() {
        try {
            InetAddress iAdd = InetAddress.getLocalHost();
            String line = "";
            String hostName = iAdd.getHostName();
            if (hostName != null) {
                InetAddress[] adds = InetAddress.getAllByName(hostName);
                for (int i = 0; i < adds.length; i++) {
                    iAdd = adds[i];
                    line = "HostName=" + iAdd.getHostName() + "\n";
                    textView.append(line);
                    line = "CanonicalHostName=" + iAdd.getCanonicalHostName()
                            + "\n";
                    textView.append(line);
                    line = "HostAddress=" + iAdd.getHostAddress() + "\n";
                    textView.append(line);
                    textView.append("\n");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();

        }
    }

    public void getWifiInfo() {
        WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        WifiInfo info = wifi.getConnectionInfo();
        textView.append("HiddenSSID=" + info.getHiddenSSID() + "\n");
        textView.append("IpAddress=" + info.getIpAddress() + "\n");
        textView.append("LinkSpeed=" + info.getLinkSpeed() + "\n");
        textView.append("NetworkId=" + info.getNetworkId() + "\n");
        textView.append("Rssi=" + info.getRssi() + "\n");
        textView.append("SSID=" + info.getSSID() + "\n");
        textView.append("MacAddress=" + info.getMacAddress() + "\n");
    }

    public void initNetworkInfo() {
        ConnectivityManager mag = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        // 此處輸出當前可用網絡
        textView.append("\nActive:\n");
        NetworkInfo info = mag.getActiveNetworkInfo();
        textView.append("ExtraInfo=" + info.getExtraInfo() + "\n");
        textView.append("SubtypeName=" + info.getSubtypeName() + "\n");
        textView.append("TypeName=" + info.getTypeName() + "\n");

        textView.append("\nWifi:\n");
        NetworkInfo wifiInfo = mag
                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        textView.append("ExtraInfo=" + wifiInfo.getExtraInfo() + "\n");
        textView.append("SubtypeName=" + wifiInfo.getSubtypeName() + "\n");
        textView.append("TypeName=" + wifiInfo.getTypeName() + "\n");
        NetworkInfo mobInfo = mag
                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        textView.append("\nMobile:\n");
        textView.append("ExtraInfo=" + mobInfo.getExtraInfo() + "\n");
        textView.append("SubtypeName=" + mobInfo.getSubtypeName() + "\n");
        textView.append("TypeName=" + mobInfo.getTypeName() + "\n");
    }
}

需要加入權限:

 

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM