【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android中如何使用NetworkUtils網(wǎng)絡(luò)工具類_第1頁(yè)
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android中如何使用NetworkUtils網(wǎng)絡(luò)工具類_第2頁(yè)
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android中如何使用NetworkUtils網(wǎng)絡(luò)工具類_第3頁(yè)
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android中如何使用NetworkUtils網(wǎng)絡(luò)工具類_第4頁(yè)
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android中如何使用NetworkUtils網(wǎng)絡(luò)工具類_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android中如何使用NetworkUtils網(wǎng)絡(luò)工具類

Android中如何使用NetworkUtils網(wǎng)絡(luò)工具類,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。提供的方法:打開網(wǎng)絡(luò)設(shè)置界面openWirelessSettings判斷網(wǎng)絡(luò)是否可用isAvailable判斷網(wǎng)絡(luò)是否連接isConnected判斷網(wǎng)絡(luò)是否是4Gis4G判斷wifi是否連接狀態(tài)isWifiConnected獲取移動(dòng)網(wǎng)絡(luò)運(yùn)營(yíng)商名稱getNetworkOperatorName獲取移動(dòng)終端類型getPhoneType獲取當(dāng)前的網(wǎng)絡(luò)類型(WIFI,2G,3G,4G)getNetWorkType、getNetWorkTypeName代碼:import

android.content.Context;

import

android.content.Intent;

import

.ConnectivityManager;

import

.NetworkInfo;

import

android.telephony.TelephonyManager;

/**

*

網(wǎng)絡(luò)工具類

*/

public

class

NetworkUtils

{

public

static

final

int

NETWORK_NO

=

-1;

//

no

network

public

static

final

int

NETWORK_WIFI

=

1;

//

wifi

network

public

static

final

int

NETWORK_2G

=

2;

//

"2G"

networks

public

static

final

int

NETWORK_3G

=

3;

//

"3G"

networks

public

static

final

int

NETWORK_4G

=

4;

//

"4G"

networks

public

static

final

int

NETWORK_UNKNOWN

=

5;

//

unknown

network

private

static

final

int

NETWORK_TYPE_GSM

=

16;

private

static

final

int

NETWORK_TYPE_TD_SCDMA

=

17;

private

static

final

int

NETWORK_TYPE_IWLAN

=

18;

/**

*

打開網(wǎng)絡(luò)設(shè)置界面

*

<p>3.0以下打開設(shè)置界面</p>

*

*

@param

context

上下文

*/

public

static

void

openWirelessSettings(Context

context)

{

if

(android.os.Build.VERSION.SDK_INT

>

10)

{

context.startActivity(new

Intent(vider.Settings.ACTION_SETTINGS));

}

else

{

context.startActivity(new

Intent(vider.Settings.ACTION_WIRELESS_SETTINGS));

}

}

/**

*

獲取活動(dòng)網(wǎng)絡(luò)信息

*

*

@param

context

上下文

*

@return

NetworkInfo

*/

private

static

NetworkInfo

getActiveNetworkInfo(Context

context)

{

ConnectivityManager

cm

=

(ConnectivityManager)

context

.getSystemService(Context.CONNECTIVITY_SERVICE);

return

cm.getActiveNetworkInfo();

}

/**

*

判斷網(wǎng)絡(luò)是否可用

*

<p>需添加權(quán)限

{@code

<uses-permission

android:name="android.permission.ACCESS_NETWORK_STATE"/>}</p>

*

*

@param

context

上下文

*

@return

{@code

true}:

可用<br>{@code

false}:

不可用

*/

public

static

boolean

isAvailable(Context

context)

{

NetworkInfo

info

=

getActiveNetworkInfo(context);

return

info

!=

null

&&

info.isAvailable();

}

/**

*

判斷網(wǎng)絡(luò)是否連接

*

<p>需添加權(quán)限

{@code

<uses-permission

android:name="android.permission.ACCESS_NETWORK_STATE"/>}</p>

*

*

@param

context

上下文

*

@return

{@code

true}:

是<br>{@code

false}:

*/

public

static

boolean

isConnected(Context

context)

{

NetworkInfo

info

=

getActiveNetworkInfo(context);

return

info

!=

null

&&

info.isConnected();

}

/**

*

判斷網(wǎng)絡(luò)是否是4G

*

<p>需添加權(quán)限

{@code

<uses-permission

android:name="android.permission.ACCESS_NETWORK_STATE"/>}</p>

*

*

@param

context

上下文

*

@return

{@code

true}:

是<br>{@code

false}:

不是

*/

public

static

boolean

is4G(Context

context)

{

NetworkInfo

info

=

getActiveNetworkInfo(context);

return

info

!=

null

&&

info.isAvailable()

&&

info.getSubtype()

==

TelephonyManager.NETWORK_TYPE_LTE;

}

/**

*

判斷wifi是否連接狀態(tài)

*

<p>需添加權(quán)限

{@code

<uses-permission

android:name="android.permission.ACCESS_NETWORK_STATE"/>}</p>

*

*

@param

context

上下文

*

@return

{@code

true}:

連接<br>{@code

false}:

未連接

*/

public

static

boolean

isWifiConnected(Context

context)

{

ConnectivityManager

cm

=

(ConnectivityManager)

context

.getSystemService(Context.CONNECTIVITY_SERVICE);

return

cm

!=

null

&&

cm.getActiveNetworkInfo()

!=

null

&&

cm.getActiveNetworkInfo().getType()

==

ConnectivityManager.TYPE_WIFI;

}

/**

*

獲取移動(dòng)網(wǎng)絡(luò)運(yùn)營(yíng)商名稱

*

<p>如中國(guó)聯(lián)通、中國(guó)移動(dòng)、中國(guó)電信</p>

*

*

@param

context

上下文

*

@return

移動(dòng)網(wǎng)絡(luò)運(yùn)營(yíng)商名稱

*/

public

static

String

getNetworkOperatorName(Context

context)

{

TelephonyManager

tm

=

(TelephonyManager)

context

.getSystemService(Context.TELEPHONY_SERVICE);

return

tm

!=

null

?

tm.getNetworkOperatorName()

:

null;

}

/**

*

獲取移動(dòng)終端類型

*

*

@param

context

上下文

*

@return

手機(jī)制式

*

<ul>

*

<li>{@link

TelephonyManager#PHONE_TYPE_NONE

}

:

0

手機(jī)制式未知</li>

*

<li>{@link

TelephonyManager#PHONE_TYPE_GSM

}

:

1

手機(jī)制式為GSM,移動(dòng)和聯(lián)通</li>

*

<li>{@link

TelephonyManager#PHONE_TYPE_CDMA

}

:

2

手機(jī)制式為CDMA,電信</li>

*

<li>{@link

TelephonyManager#PHONE_TYPE_SIP

}

:

3</li>

*

</ul>

*/

public

static

int

getPhoneType(Context

context)

{

TelephonyManager

tm

=

(TelephonyManager)

context

.getSystemService(Context.TELEPHONY_SERVICE);

return

tm

!=

null

?

tm.getPhoneType()

:

-1;

}

/**

*

獲取當(dāng)前的網(wǎng)絡(luò)類型(WIFI,2G,3G,4G)

*

<p>需添加權(quán)限

{@code

<uses-permission

android:name="android.permission.ACCESS_NETWORK_STATE"/>}</p>

*

*

@param

context

上下文

*

@return

網(wǎng)絡(luò)類型

*

<ul>

*

<li>{@link

#NETWORK_WIFI

}

=

1;</li>

*

<li>{@link

#NETWORK_4G

}

=

4;</li>

*

<li>{@link

#NETWORK_3G

}

=

3;</li>

*

<li>{@link

#NETWORK_2G

}

=

2;</li>

*

<li>{@link

#NETWORK_UNKNOWN}

=

5;</li>

*

<li>{@link

#NETWORK_NO

}

=

-1;</li>

*

</ul>

*/

public

static

int

getNetWorkType(Context

context)

{

int

netType

=

NETWORK_NO;

NetworkInfo

info

=

getActiveNetworkInfo(context);

if

(info

!=

null

&&

info.isAvailable())

{

if

(info.getType()

==

ConnectivityManager.TYPE_WIFI)

{

netType

=

NETWORK_WIFI;

}

else

if

(info.getType()

==

ConnectivityManager.TYPE_MOBILE)

{

switch

(info.getSubtype())

{

case

NETWORK_TYPE_GSM:

case

TelephonyManager.NETWORK_TYPE_GPRS:

case

TelephonyManager.NETWORK_TYPE_CDMA:

case

TelephonyManager.NETWORK_TYPE_EDGE:

case

TelephonyManager.NETWORK_TYPE_1xRTT:

case

TelephonyManager.NETWORK_TYPE_IDEN:

netType

=

NETWORK_2G;

break;

case

NETWORK_TYPE_TD_SCDMA:

case

TelephonyManager.NETWORK_TYPE_EVDO_A:

case

TelephonyManager.NETWORK_TYPE_UMTS:

case

TelephonyManager.NETWORK_TYPE_EVDO_0:

case

TelephonyManager.NETWORK_TYPE_HSDPA:

case

TelephonyManager.NETWORK_TYPE_HSUPA:

case

TelephonyManager.NETWORK_TYPE_HSPA:

case

TelephonyManager.NETWORK_TYPE_EVDO_B:

case

TelephonyManager.NETWORK_TYPE_EHRPD:

case

TelephonyManager.NETWORK_TYPE_HSPAP:

netType

=

NETWORK_3G;

break;

case

NETWORK_TYPE_IWLAN:

case

TelephonyManager.NETWORK_TYPE_LTE:

netType

=

NETWORK_4G;

break;

default:

String

subtypeName

=

info.getSubtypeName();

if

(subtypeName.equalsIgnoreCase("TD-SCDMA")

||

subtypeName.equalsIgnoreCase("WCDMA")

||

subtypeName.equalsIgnoreCase("CDMA2000"))

{

netType

=

NETWORK_3G;

}

else

{

netType

=

NETWORK_UNKNOWN;

}

break;

}

}

else

{

netType

=

NETWORK_UNKNOWN;

}

}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論