ANDROID下多種網路模式的聯網處理

2021-06-04 18:03:21 字數 715 閱讀 4786

在android智慧型手機上,支援的網路模式很多,有wifi、流動網路,而流動網路又分走不走閘道器,如果是雙卡雙待的手機,則更為複雜。那麼在程式中如何進行正確的網路連線呢?以下是我在專案中所採用的方式。

// 說明:聯網時優先選擇wifi聯網,如果wifi沒開或不可用,則使用流動網路

// 非wifi聯網

else

// 直連模式

else }

android提供了查詢當前有效網路資訊的api,即系統服務connectivity_service,在使用時需要在androidmanifest.xml檔案中宣告許可權。根據該api在上述**中可以查詢到當前使用的wifi還是mobile。

1、如果是wifi,則直接建立httpurlconnection物件,進行網路連線;

2、如果是mobile或者getactivenetworkinfo()為空,則按**中非wifi聯網的**進行處理。這裡通過proxy.getdefaulthost()檢視是否**模式。

使用這種方式避免了在程式中去做wap、net的判斷,而進行位址的轉換等操作。用起來還是很方便的。

我採取上述的方式在電信、聯通、移動三種運營商下以及雙卡雙待的機型上測試都能通過。

如果上述內容有不對的地方,敬請指出,謝謝。

**:

在Julia的REPL下的多種模式

在julia的repl下,有多種模式 在help模式下,可以檢視各種幫助文件,就相當於執行 doc命令 julia doc println help?println在 package模式下,可以增加 刪除各種庫,相當於用pkg這個模組來操作。package模式下的add gr相當於pkg.add g...

Android 單例模式多種實現方法對比

單例模式,又稱單件模式或者單子模式,指的是乙個類只有乙個例項,並且提供乙個全域性訪問點。可以使用下面幾種方式建立單例呼叫 餓漢式 餓漢式指的是單例的例項在類裝載時進行建立。如果單例類的構造方法中沒有包含過多的操作處理,餓漢式其實是可以接受的。餓漢式的常見 如下,當singleinstance類載入時...

Android 控制fastboot模式下功能

涉及 如下 bootable bootloader lk makefile 這裡編譯條件使得user版本下 fastboot 很多功能失效 ifeq target build variant user cflags ddisable fastboot cmds 1endif 這裡即是巨集使用的地方,...