Android 判斷是否有外網(wǎng)連接
Android里判斷是否可以上網(wǎng),常用的是如下方法:
/**
* 檢測(cè)網(wǎng)絡(luò)是否連接
*
* @return
*/
private boolean isNetworkAvailable() {
// 得到網(wǎng)絡(luò)連接信息
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
// 去進(jìn)行判斷網(wǎng)絡(luò)是否連接
if (manager.getActiveNetworkInfo() != null) {
return manager.getActiveNetworkInfo().isAvailable();
}
return false;
}
有時(shí)候我們連接上一個(gè)沒(méi)有外網(wǎng)連接的WiFi或者有線(xiàn)就會(huì)出現(xiàn)這種極端的情況,目前Android SDK還不能識(shí)別這種情況,一般的解決辦法就是ping一個(gè)外網(wǎng)。
/* @author suncat
* @category 判斷是否有外網(wǎng)連接(普通方法不能判斷外網(wǎng)的網(wǎng)絡(luò)是否連接,比如連接上局域網(wǎng))
* @return
*/
public static final boolean ping() {
String result = null;
try {
String ip = "www.baidu.com";// ping 的地址,可以換成任何一種可靠的外網(wǎng)
Process p = Runtime.getRuntime().exec("ping -c 3 -w 100 " + ip);// ping網(wǎng)址3次
// 讀取ping的內(nèi)容,可以不加
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的狀態(tài)
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;
}
相關(guān)文章
Flutter中g(shù)o_router路由管理的使用指南
go_router?是一個(gè)?Flutter?的第三方路由插件,相比?Flutter?自帶的路由,go_router?更加靈活,而且簡(jiǎn)單易用,下面小編就來(lái)和大家聊聊go_router的使用吧2023-08-08
Android自定義View實(shí)現(xiàn)多圖片選擇控件
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)多圖片選擇控件,具有一定的實(shí)用性,感興趣的小伙伴們可以參考一下2016-08-08
Android實(shí)現(xiàn)上傳文件到服務(wù)器實(shí)例詳解
本篇文章詳細(xì)介紹了Android實(shí)現(xiàn)上傳文件到服務(wù)器實(shí)例詳解,實(shí)現(xiàn)了文件每隔5秒進(jìn)行上傳,有需要的可以了解一下。2016-11-11
Android 利用三階貝塞爾曲線(xiàn)繪制運(yùn)動(dòng)軌跡的示例
本篇文章主要介紹了Android 利用三階貝塞爾曲線(xiàn)繪制運(yùn)動(dòng)軌跡的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
實(shí)例講解Android中的View類(lèi)以及自定義View控件的方法
這篇文章主要介紹了Android中的View類(lèi)以及自定義View控件的方法,講解了如何繼承View類(lèi)并且展示了一個(gè)對(duì)View進(jìn)行重繪的例子,需要的朋友可以參考下2016-04-04
Android 源碼淺析RecyclerView ItemAnimator
這篇文章主要為大家介紹了Android 源碼淺析RecyclerView ItemAnimator,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
使用Flutter 構(gòu)建Web應(yīng)用邏輯解析
這篇文章主要為大家介紹了使用Flutter 構(gòu)建Web應(yīng)用邏輯解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12

