android wap與net的兩種連線方式
> android 手機網路接入點名稱及WAP、NET模式的區別-- http://www.cnblogs.com/sunfb/p/3890305.html
移動/電信/聯通 APN:cmwap cmnet ctwap ctnet 3gwap uniwap 3gnet uninet設定。
APN(Access Point Name),即“接入點名稱”,用來標識GPRS的業務種類,目前分為兩大類:CMWAP(通過GPRS訪問WAP業務)、CMNET(除了WAP以外的服務目前都用CMNET,比如連線因特網等)。
中國移動APN: cmwap (2G) cmnet (3G);
中國電信APN: ctwap (2G) ctnet (3G);
中國聯通APN: uniwap (2G手機) 3gwap (3G手機) uninet (2G電腦) 3gnet (3G電腦);
一般wap接入和上飛信或者手機登陸運營商營業廳 用 wap (2G),一般上網 使用者會選擇net。
我們使用Android裝置連線網路時,如果是wap接入點就需要設定代理,而電信和移動聯通的代理並不相同,移動和聯通的wap代理都是10.0.0.172:80,電信的wap代理是10.0.0.200:80,所以進行Android開發時很有必要判斷接入點。
接入點的型別:
Net網路:運營商(移動聯通電信)net網路,wifi,usb網路共享;
Wap網路:移動聯通wap(代理相同:10.0.0.172:80),電信wap(代理:10.0.0.200:80);
這樣看來就可以抽象出三種網路型別:聯通移動wap,電信wap,其他的都是net型別。
> 判斷連結網路的型別:
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
public class CheckApnTypeActivity extends Activity {
/** Called when the activity is first created. */
public static final String CTWAP = "ctwap";
public static final String CMWAP = "cmwap";
public static final String WAP_3G = "3gwap";
public static final String UNIWAP = "uniwap";
public static final int TYPE_NET_WORK_DISABLED = 0;// 網路不可用
public static final int TYPE_CM_CU_WAP = 4;// 移動聯通wap10.0.0.172
public static final int TYPE_CT_WAP = 5;// 電信wap 10.0.0.200
public static final int TYPE_OTHER_NET = 6;// 電信,移動,聯通,wifi 等net網路
public static Uri PREFERRED_APN_URI = Uri
.parse("content://telephony/carriers/preferapn");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
checkNetworkType(this);
}
/***
* 判斷Network具體型別(聯通移動wap,電信wap,其他net)
*
* */
public static int checkNetworkType(Context mContext) {
try {
final ConnectivityManager connectivityManager = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo mobNetInfoActivity = connectivityManager
.getActiveNetworkInfo();
if (mobNetInfoActivity == null || !mobNetInfoActivity.isAvailable()) {
// 注意一:
// NetworkInfo 為空或者不可以用的時候正常情況應該是當前沒有可用網路,
// 但是有些電信機器,仍可以正常聯網,
// 所以當成net網路處理依然嘗試連線網路。
// (然後在socket中捕捉異常,進行二次判斷與使用者提示)。
Log.i("", "=====================>無網路");
return TYPE_OTHER_NET;
} else {
// NetworkInfo不為null開始判斷是網路型別
int netType = mobNetInfoActivity.getType();
if (netType == ConnectivityManager.TYPE_WIFI) {
// wifi net處理
Log.i("", "=====================>wifi網路");
return TYPE_OTHER_NET;
} else if (netType == ConnectivityManager.TYPE_MOBILE) {
// 注意二:
// 判斷是否電信wap:
//不要通過getExtraInfo獲取接入點名稱來判斷型別,
// 因為通過目前電信多種機型測試發現接入點名稱大都為#777或者null,
// 電信機器wap接入點中要比移動聯通wap接入點多設定一個使用者名稱和密碼,
// 所以可以通過這個進行判斷!
final Cursor c = mContext.getContentResolver().query(
PREFERRED_APN_URI, null, null, null, null);
if (c != null) {
c.moveToFirst();
final String user = c.getString(c
.getColumnIndex("user"));
if (!TextUtils.isEmpty(user)) {
Log.i("",
"=====================>代理:"
+ c.getString(c
.getColumnIndex("proxy")));
if (user.startsWith(CTWAP)) {
Log.i("", "=====================>電信wap網路");
return TYPE_CT_WAP;
}
}
}
c.close();
// 注意三:
// 判斷是移動聯通wap:
// 其實還有一種方法通過getString(c.getColumnIndex("proxy")獲取代理ip
//來判斷接入點,10.0.0.172就是移動聯通wap,10.0.0.200就是電信wap,但在
//實際開發中並不是所有機器都能獲取到接入點代理資訊,例如魅族M9 (2.2)等...
// 所以採用getExtraInfo獲取接入點名字進行判斷
String netMode = mobNetInfoActivity.getExtraInfo();
Log.i("", "netMode ================== " + netMode);
if (netMode != null) {
// 通過apn名稱判斷是否是聯通和移動wap
netMode=netMode.toLowerCase();
if (netMode.equals(CMWAP) || netMode.equals(WAP_3G)
|| netMode.equals(UNIWAP)) {
Log.i("", "=====================>移動聯通wap網路");
return TYPE_CM_CU_WAP;
}
}
}
}
} catch (Exception ex) {
ex.printStackTrace();
return TYPE_OTHER_NET;
}
return TYPE_OTHER_NET;
}
}
> WAP和NET的區別
一、什麼是WAP和NET接入:
我們常用的手機上網都是採用WAP方式接入,此種方式是專為手機接入而命名的。而另一種net接入是我們常說的電腦方式接入,即電腦客戶端接入方式。兩者最大的區別在於net方式費流量,而wap方式非常的省流量!
二、WAP和NET接入點的區別:
WAP接入點使用WAP閘道器處理你的請求,相當於訪問一個移動型私網,而NET接入點是通過防火牆後直接訪問的公網。之所以WAP方式比NET更省流量,主要是因為WAP的一般頁面訪問用WAP1.x的協議,頁面與協議棧都經過了壓縮處理,而NET則是http訪問,協議棧本身的開銷會大一些。目前運營商正在推進APN融合,很快就不用再區分WAP和NET接入點了。
三、當我們使用手機上網時,聯通接入點3gwap和3gnet這兩者之間有什麼區別呢?
1.3gwap和3gnet首先這只是一個接入點的名稱並不代表你選的3G就是3G的網路;
2.手機最初的接入點是wap,移動稱之為:移動夢網;聯通稱之為:百寶箱。後來由於網路的發展手機通過WAP接入並不能開啟很多電腦上的網站,而且上網慢,就用net接入點這個接入點速度快並能覆蓋全國,一般外地出差或玩手機網路遊戲都用net接入點。
相關推薦
android wap與net的兩種連線方式
> android 手機網路接入點名稱及WAP、NET模式的區別-- http://www.cnblogs.com/sunfb/p/3890305.html 移動/電信/聯通 APN:cmwap cmnet ctwap ctnet 3gwap uniwap 3gne
Kafka結合Spark-streaming 的兩種連線方式(AWL與直連)
kafka結合spark-streaming的用法及說明之前部落格有些,這裡就不贅述了。 這篇文章說下他們結合使用的兩種連線方式。(AWL與直連) 先看一張圖: 這是kafka與streaming結合的基本方式,如圖spark叢集中的 worker節點中 exeutor
Java與Oracle的兩種連線方式
第一種方式:通過資料庫本身的JDBC Driver連線到資料庫 Classs.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection("jdbc:
elasticsearch 的兩種連線方式+三種客戶端
所有語言 所有語言可以使用 RESTful API 通過埠 9200 和 Elasticsearch 進行通訊,你可以用你最喜愛的 web 客戶端訪問 Elasticsearch 。事實上,正如你所看到的,你甚至可以使用 curl&n
【Android】打電話的兩種實現方式
第一種實現方式:直接給聯絡人打電話 Intent intent=new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:110")); startActivity(intent);
Eclipse匯入git工程(HTTP與SSH兩種匯入方式)
Eclipse匯入Git工程(HTTP與SSH兩種匯入方式) Eclipse git官方使用說明:http://wiki.eclipse.org/EGit/User_Guide#Eclipse_SSH_Configuration 一、使用HTTP方式匯入git工程
Android中BroadcastReceiver的兩種註冊方式(靜態和動態)詳解
今天我們一起來探討下安卓中BroadcastReceiver元件以及詳細分析下它的兩種註冊方式。 BroadcastReceiver也就是“廣播接收者”的意思,顧名思義,它就是用來接收來自系統和應用中的廣播。在Android系統中,廣播體現在方方面面,例如當開機完成後系統會
Android 圓形頭像的兩種實現方式
前言 這篇部落格只是為了做一個記錄而已,方便而後查詢,核心程式碼都是直接採用鴻洋部落格裡面的程式碼的。 圓形頭像在實際開發中實際很常見,一般來說,主要有兩種實現方式: 第一種: 使用 Paint 的 Xfermode 實戰 第二種方法: 使用 B
【JavaScript】2.Http中Get與Post兩種請求方式的差異
Get和Post在面試中一般都會問到,一般的區別: (1)post更安全(不會作為url的一部分,不會被快取、儲存在伺服器日誌、以及瀏覽器瀏覽記錄中) (2)post傳送的資料更大(get有url長度限制) (3)post能傳送更多的資料型別(get只能傳送ASCII字元)
oracle兩種連線方式的差異記錄
連線oralce資料庫的方式。有兩種: (1)db.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(LOAD_BALANCE=YES)(FAILOV
Oracle兩種連線方式
一、需要安裝Oracle客戶端並配置tnsnames.ora 配置檔案D:\app\User\product\11.2.0\client_1\network\admin\tnsnames.ora string connStr1 = "Data Source=HISDB;Us
android中廣播的兩種啟動方式淺析【自定義Action】
1:註冊廣播:(有兩種方式) 一是動態方式使用Context.registerReceiver()方法來註冊; 二是靜態方式,即在AndroidManifest.xml中通過<receiver> 。 2:傳送廣播:
Android資料庫兩種操作方式介紹: SQLite與ORMLite
本文主要介紹關係型資料庫 SQLite 和物件關係對映工具 ORMLite ,兩種方式都可以滿足Android多資料持久化儲存的需求。 1. SQLite 簡介: SQLite是一款Android內建的輕量級的關係型資料庫,它的運算速度非常快,佔用資源少,通常只需要幾
ASP.NET 兩種配置ORACLE資料庫的連線方式
ASP.NET 兩種配置ORACLE資料庫的連線方式 1.使用"connectionStrings"標籤定義 2.使用"appSettings"標籤定義 1.使用"connectionStrings"標籤定義 在ASP.NET中的 W
JFreeChart與AJAX+JSON+ECharts兩種處理方式生成熱詞統計可視化圖表
線型 static 後臺 標註 png tip 開源工具 grid 讀取 本篇的思想:對HDFS獲取的數據進行兩種不同的可視化圖表處理方式。第一種JFreeChar可視化處理生成圖片文件查看。第二種AJAX+JSON+ECharts實現可視化圖表,並呈現於瀏覽器上。
Oozie與Coordinator調度講解及系統時區配置與定時觸發兩種配置方式
-- track eno star es2017 alt coo 之前 res 1:修改本地linux時區 查看時區 - 號代表西 + 號 代表東 北京時間是東八區 設置時區的配置文件所在位置 1 cd /usr/share/zoneinfo/
vue 路由傳參 params 與 query兩種方式的區別
fine 分享 文件 路由 註意 undefine 方法 router 由於 初學vue的時候,不知道如何在方法中跳轉界面並傳參,百度過後,了解到兩種方式,params 與 query。然後,錯誤就這麽來了: router文件下index.js裏面,是這麽定義路由
java的兩種同步方式, Synchronized與ReentrantLock的區別
性能 避免 字節碼 數據 獲取對象 通過 finall 內核 構造函數 java在編寫多線程程序時,為了保證線程安全,需要對數據同步,經常用到兩種同步方式就是Synchronized和重入鎖ReentrantLock。 相似點: 這兩種同步方式有很多相似之
[Vue]實例化Vue時的兩種掛載方式el與$mount
class message size obj new () ESS div clas Vue 的$mount()為手動掛載,在項目中可用於延時掛載(例如在掛載之前要進行一些其他操作、判斷等),之後要手動掛載上。new Vue時,el和$mount並沒有本質上的不同。 1
[Linux]PHP-FPM與NGINX的兩種通訊方式
rom code pan ESS write 訪問權限 nec ner div 一、通過監聽TCP端口通訊 php-fpm.d/www.conf ; The address on which to accept FastCGI requests. ; Valid synt