導航:首頁 > 網路連接 > android網路連接判斷

android網路連接判斷

發布時間:2022-06-15 11:25:56

㈠ android 如何判斷網路是否能夠上網

實現步驟:
下面解決辦法來自於android學習手冊,android學習手冊包含9個章節,108個例子,源碼文檔隨便看,例子都是可交互,可運行,源碼採用android studio目錄結構,高亮顯示代碼,文檔都採用文檔結構圖顯示,可以快速定位。360手機助手中下載。排到第三個。
1、獲取ConnectivityManager對象
Context context = activity.getApplicationContext();
// 獲取手機所有連接管理對象(包括對wi-fi,net等連接的管理)
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

2、獲取NetworkInfo對象
// 獲取NetworkInfo對象
NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();

3、判斷當前網路狀態是否為連接狀態
if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
{
return true;
}

4、在AndroidManifest.xml中添加訪問當前網路狀態許可權
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

代碼如下:

public class ClassTestDemoActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (isNetworkAvailable(ClassTestDemoActivity.this))
{
Toast.makeText(getApplicationContext(), "當前有可用網路!", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(), "當前沒有可用網路!", Toast.LENGTH_LONG).show();
}
}

/**
* 檢查當前網路是否可用
*
* @param context
* @return
*/

public boolean isNetworkAvailable(Activity activity)
{
Context context = activity.getApplicationContext();
// 獲取手機所有連接管理對象(包括對wi-fi,net等連接的管理)
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

if (connectivityManager == null)
{
return false;
}
else
{
// 獲取NetworkInfo對象
NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();

if (networkInfo != null && networkInfo.length > 0)
{
for (int i = 0; i < networkInfo.length; i++)
{
System.out.println(i + "===狀態===" + networkInfo[i].getState());
System.out.println(i + "===類型===" + networkInfo[i].getTypeName());
// 判斷當前網路狀態是否為連接狀態
if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
{
return true;
}
}
}
}
return false;
}
}

㈡ android 能判斷當前網路是否連接,連接的是 wifi 還是 3g/4g

// 獲取代表聯網狀態的NetWorkInfo對象 NetworkInfo networkInfo = connManager.getActiveNetworkInfo();
// 獲取當前的網路連接是否可用 if (null == networkInfo){Toast.makeText(this, "當前的網路連接不可用", Toast.LENGTH_SHORT).show();
//當網路不可用時,跳轉到網路設置頁面 startActivityForResult(new Intent(
android.provider.Settings.ACTION_WIRELESS_SETTINGS), 1);} else {boolean available = networkInfo.isAvailable();
if (available){Log.i("通知", "當前的網路連接可用");
Toast.makeText(this, "當前的網路連接可用", Toast.LENGTH_SHORT).show();} else {Log.i("通知", "當前的網路連接不可用");
Toast.makeText(this, "當前的網路連接不可用", Toast.LENGTH_SHORT).show();}}State state = connManager.getNetworkInfo(
ConnectivityManager.TYPE_MOBILE).getState();
if (State.CONNECTED == state){Log.i("通知", "GPRS網路已連接");
Toast.makeText(this, "GPRS網路已連接", Toast.LENGTH_SHORT).show();}state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
.getState();
if (State.CONNECTED == state){Log.i("通知", "WIFI網路已連接");
Toast.makeText(this, "WIFI網路已連接", Toast.LENGTH_SHORT).show();}//// 跳轉到無線網路設置界面
// startActivity(new
// Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
//// 跳轉到無限wifi網路設置界面
// startActivity(new
// Intent(android.provider.Settings.ACTION_WIFI_SETTINGS)); }也可以:
privatevoid testConnectivityManager(){ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
//mobile 3G Network State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
Log.d(mobile.toString());
//wifi Network State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
Log.d(wifi.toString());
//如果3G網路和wifi網路都未連接,且不是處於正在連接狀態 則進入Network Setting界面 由用戶配置網路連接if(mobile==State.CONNECTED||mobile==State.CONNECTING)return;if(wifi==State.CONNECTED||wifi==State.CONNECTING)return;startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));//進入無線網路配置界面
//startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); //進入手機中的wifi網路設置界面 }

㈢ android 怎麼判斷網路狀態

獲取android系統的連接服務可判斷網路連接狀態,代碼如下
public class NetUtils{
public static boolean isNetworkConnected(Context context){
ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] infos = cm.getAllNetworkInfo();
for(NetworkInfo info:infos){
if(info.isAvailable()&&info.isConnected()){
return true;
}
}
return false;
}
}

NetworkInfo的isAvailable()和isConnected()有以下5種狀態:
在WLAN設置界面
1,顯示連接已保存,但標題欄沒有,即沒有實質連接上:isConnected()==false,isAvailable()=true
2,顯示連接已保存,標題欄也有已連接上的圖標:isConnected()==true,isAvailable()=true
3,選擇不保存後:isConnected()==false,isAvailable()=true
4,選擇連接,在正在獲取IP地址時:isConnected()==false,isAvailable()=false
5,連接上後:isConnected()==true,isAvailable()=true

㈣ Android系列之如何判斷網路鏈接狀態

下面咱們討論下Android手機判斷網路鏈接狀態的技術實現吧
目前Android操作系統的手機大部分支持WIFI,
GSM,3G網路通信
,但是每次鏈接到網路時只能選擇一種鏈接方式,
比如運營商定製的,還必須要求特定的網路環境(CMWAP,CTWAP等)如果要切換網路還需要先關閉現有的網路,
然後再啟動新的網路,這個轉換過程還需要一定的時間,
可能程序這時還需要知道心的網路是否鏈接成功後自動登錄到新的網路伺服器中,
也許用一個線程去監聽網路狀態是否鏈接成功;
我們可以用另外一種方法,PhoneStateListener
沒錯,你沒看錯,就是用PhoneStateListener。
很多應用PhoneStateListener都是監聽來電去電,PhoneStateListener還可以監聽網路斷開、
正在連接和連接成功。
=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
2mTelephonyMgr.listen(newPhoneStateListener(){
3
4@Override
(intstate){
6switch(state){
7caseTelephonyManager.DATA_DISCONNECTED://網路斷開
8break;
9caseTelephonyManager.DATA_CONNECTING://網路正在連接
10break;
11caseTelephonyManager.DATA_CONNECTED://網路連接上
12break;
13}14}1516}PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);
我們只要重載onDataConnectionStateChanged方法,根據state判斷做相應的處理。

㈤ android 判斷是否有網路

用戶手機當前網路可用:WIFI、2G/3G網路,用戶打開與不打開網路,和是否可以用是兩碼事。可以使用指的是:用戶打開網路了並且可以連上互聯網進行上網。
檢測當前網路是否可用,代碼如下:
/**
* 檢測當的網路(WLAN、3G/2G)狀態
* @param context Context
* @return true 表示網路可用
*/
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo info = connectivity.getActiveNetworkInfo();
if (info != null && info.isConnected())
{
// 當前網路是連接的
if (info.getState() == NetworkInfo.State.CONNECTED)
{
// 當前所連接的網路可用
return true;
}
}
}
return false;
}
/**
* 檢測當的網路(WLAN、3G/2G)狀態
* @param context Context
* @return true 表示網路可用
*/
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo info = connectivity.getActiveNetworkInfo();
if (info != null && info.isConnected())
{
// 當前網路是連接的
if (info.getState() == NetworkInfo.State.CONNECTED)
{
// 當前所連接的網路可用
return true;
}
}
}
return false;
}

在AndroidManifest.xml文件添加的許可權:

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

㈥ android判斷網路是否連接

返回ture表示網路可用

// 檢測網路

public static boolean checkNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
NetworkInfo netWorkInfo = info[i];
if (netWorkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
return true;
} else if (netWorkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
return true;
}
}
}
}
}

return false;

}

㈦ 如何檢查Android中的WiFi網路是否連接成功

01.public boolean isWifiConnect() {
02. ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
03. NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
04. return mWifi.isConnected();
05. }
代碼非常簡單,操作也非常簡單。

01.boolean isConnected;
02.isConnected = isWifiConnect();
03.if (isConnected == false) {
04.Toast toast = Toast.makeText(Sync.this, "Wifi is NOT connected yet", Toast.LENGTH_SHORT);
05.toast.setGravity(Gravity.CENTER, 0, 0);
06.toast.show();
07.} else {
08.Toast toast = Toast.makeText(Sync.this, "Wifi is connected yet", Toast.LENGTH_SHORT);
09.toast.setGravity(Gravity.CENTER, 0, 0);
10.toast.show();
11.}

㈧ android 判斷是否有網路連接

給你一個工具方法:

/**
*判斷是否有網路
*
*@parammContext
*@return
*/
(ContextmContext)
{
=(ConnectivityManager)mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
finalNetworkInfonetworkInfo=conManager.getActiveNetworkInfo();

if(networkInfo!=null){
returnnetworkInfo.isAvailable();
}
returnfalse;
}

㈨ android 怎麼判斷當前網路連接是否可以連接到外網

Android里判斷是否可以上網,常用的是如下方法:

/**
* 檢測網路是否連接
*
* @return
*/
private boolean isNetworkAvailable() {
// 得到網路連接信息
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
// 去進行判斷網路是否連接
if (manager.getActiveNetworkInfo() != null) {
return manager.getActiveNetworkInfo().isAvailable();
}
return false;
}

有時候我們連接上一個沒有外網連接的WiFi或者有線就會出現這種極端的情況,目前Android SDK還不能識別這種情況,一般的解決辦法就是ping一個外網。

/* @author suncat
* @category 判斷是否有外網連接(普通方法不能判斷外網的網路是否連接,比如連接上區域網)
* @return
*/
public static final boolean ping() {

String result = null;
try {
String ip = "www..com";// ping 的地址,可以換成任何一種可靠的外網
Process p = Runtime.getRuntime().exec("ping -c 3 -w 100 " + ip);// ping網址3次
// 讀取ping的內容,可以不加
InputStream input = p.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(input));
StringBuffer stringBuffer = new StringBuffer();
String content = "";
while ((content = in.readLine()) != null) {
stringBuffer.append(content);
}
Log.d("------ping-----", "result content : " + stringBuffer.toString());
// ping的狀態
int status = p.waitFor();
if (status == 0) {
result = "success";
return true;
} else {
result = "failed";
}
} catch (IOException e) {
result = "IOException";
} catch (InterruptedException e) {
result = "InterruptedException";
} finally {
Log.d("----result---", "result = " + result);
}
return false;
}

㈩ Android判斷網路是否連接,跳轉到設置頁面以及判斷連接的是什麼網路

/**
* 檢測網路是否連接
* @return
*/
private boolean checkNetworkState() {
boolean flag = false;
//得到網路連接信息
manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
//去進行判斷網路是否連接
if (manager.getActiveNetworkInfo() != null) {
flag = manager.getActiveNetworkInfo().isAvailable();
}
if (!flag) {
setNetwork();
} else {
isNetworkAvailable();
}
return flag;
}

/**
* 網路未連接時,調用設置方法
*/
private void setNetwork(){
Toast.makeText(this, "wifi is closed!", Toast.LENGTH_SHORT).show();

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("網路提示信息");
builder.setMessage("網路不可用,如果繼續,請先設置網路!");
builder.setPositiveButton("設置", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = null;
/**
* 判斷手機系統的版本!如果API大於10 就是3.0+
* 因為3.0以上的版本的設置和3.0以下的設置不一樣,調用的方法不同
*/
if (android.os.Build.VERSION.SDK_INT > 10) {
intent = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS);
} else {
intent = new Intent();
ComponentName component = new ComponentName(
"com.android.settings",
"com.android.settings.WirelessSettings");
intent.setComponent(component);
intent.setAction("android.intent.action.VIEW");
}
startActivity(intent);
}
});
builder.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.create();
builder.show();
}

/**
* 網路已經連接,然後去判斷是wifi連接還是GPRS連接
* 設置一些自己的邏輯調用
*/
private void isNetworkAvailable(){

State gprs = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if(gprs == State.CONNECTED || gprs == State.CONNECTING){
Toast.makeText(this, "wifi is open! gprs", Toast.LENGTH_SHORT).show();
}
//判斷為wifi狀態下才載入廣告,如果是GPRS手機網路則不載入!
if(wifi == State.CONNECTED || wifi == State.CONNECTING){
Toast.makeText(this, "wifi is open! wifi", Toast.LENGTH_SHORT).show();
loadAdmob();
}

}

閱讀全文

與android網路連接判斷相關的資料

熱點內容
蘋果網路鎖美國繳費解鎖 瀏覽:718
網路電視開機診斷請輸入密碼 瀏覽:10
震旦228e網路掃描怎麼設置 瀏覽:213
賽爾號網路連接 瀏覽:28
面授班和網路教育哪個好 瀏覽:182
如何進行網路保險的營銷 瀏覽:380
網路電視機播放器哪個好 瀏覽:620
ipad網路連接失敗 瀏覽:917
5g網路出來了wifi還快嗎 瀏覽:466
怎麼找到保存的網路密碼 瀏覽:358
廣電精靈電視網路設置 瀏覽:143
校園網路安全與遠程接入 瀏覽:580
wifi修改網路會怎麼樣 瀏覽:389
網路信息培訓哪個好 瀏覽:669
網路安全攻防戰基本書籍 瀏覽:323
網路與自媒體是什麼專業 瀏覽:197
北京進口網路營銷設置 瀏覽:116
華為怎麼關閉網路時間設置 瀏覽:52
win7雙網口共享網路 瀏覽:904
動漫網路游戲電腦版 瀏覽:676

友情鏈接