編輯:初級開發
言歸正傳下面咱們討論下android手機判斷網絡鏈接狀態的技術實現吧
目前android操作系統的手機大部分支持WIFI,GSM,3G網絡通信,但是每次鏈接到網絡時只能選擇一種鏈接方式,
比如運營商定制的,還必須要求特定的網絡環境(CMWAP,CTWAP等)如果要切換網絡還需要先關閉現有的網絡,
然後再啟動新的網絡,這個轉換過程還需要一定的時間,
可能程序這時還需要知道心的網絡是否鏈接成功後自動登錄到新的網絡服務器中,
那怎麼知道幾時鏈接成功呢?這個時間需要多久呢?
也許用一個線程去監聽網絡狀態是否鏈接成功;
我們可以用另外一種方法,PhoneStateListener
沒錯,你沒看錯,就是用PhoneStateListener。
很多應用PhoneStateListener都是監聽來電去電,PhoneStateListener還可以監聽網絡斷開、
正在連接和連接成功。
1 final TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 2 mTelephonyMgr.listen(new PhoneStateListener(){ 3 4 @Override 5 public void onDataConnectionStateChanged(int state) { 6 switch(state){ 7 case TelephonyManager.DATA_DISCONNECTED://網絡斷開 8 break; 9 case TelephonyManager.DATA_CONNECTING://網絡正在連接10 break;11 case TelephonyManager.DATA_CONNECTED://網絡連接上12 break;13 }14 }15 16 }
PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);
我們只要重載onDataConnectionStateChanged方法,根據state判斷做相應的處理。
webvIEw很簡單,和普通widget沒什麼區別,就是要在androidManifest.XML中加一句<uses-permission android:nam
HTC Hero作為一款硬件配置強悍的智能手機,對不同版本的android系統兼容性非常好,曾有用戶將HTC新機Espresso內的2.1版android系統和最新的S
l 使用Intent物件雖然透過Intent並非最快速,但卻是最有彈性的。無論是同一進程或是跨進程的溝通都可以使用它。例如:/* ===== EX-02 ======
我首先從宏觀的角度觀察Binder,Service,Service Manager,並闡述各自的概念。從Linux的概念空間中,android的設計Activity托管