看板 AndroidDev 關於我們 聯絡資訊
各位大大好 小弟最近再做有關android wifi相關的程式部份 爬了很多文 目前作到利用BroadcastReceiver偵測wifi狀態開關 但是遇到另外一種狀況 APP功能: 要從網路下載檔案 必須能偵測連線狀態 斷線時關閉下載 連線恢復後自動重啟下載 狀況: 用A手機當AP(開3G,開熱點名稱GGG),用B平板載入APP wifi選擇GGG 我操作A手機 開啟/關閉熱點 B平板都可以偵測到 關閉下載重啟下載 但是情況2 我熱點持續開著 關閉3G開啟3G 於B平板來說他都是有連線的狀態 可是實際上卻沒有出去連線的能力 我想要針對這種情況做偵測 但是都失敗了 也爬了很多文 但是都是針對wifi的連線 沒有對連線能力的解法 ------- 以下是我針對wifi偵測部份的code onCreat() { ... mConnectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); mNetworkChangedReceiver = new ConnectivityChangedReceiver(); registerReceiver(mNetworkChangedReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); ... } ... public boolean isNetworkConnected() { NetworkInfo info = mConnectivityManager.getActiveNetworkInfo(); boolean connected = info != null && info.isConnected(); return connected; } ... private class ConnectivityChangedReceiver extends BroadcastReceiver { public ConnectivityChangedReceiver() { //do something } @Override public void onReceive(Context context, Intent intent) { //do something } } --------- 下面這些function都嘗試過 但是會認定正常連線 無法利用判斷 info.getTypeName(); // 目前以何種方式連線 [WIFI] info.getState(); // 目前連線狀態 [CONNECTED] info.isAvailable(); // 目前網路是否可使用 [true] info.isConnected(); // 網路是否已連接 [true] info.isConnectedOrConnecting(); // 網路是否已連接 或 連線中 [true] info.isFailover(); // 網路目前是否有問題 [false] 也嘗試了蠻多ConnectivityManager和WifiManager的Intent但是都沒反應 想問大大們 是否有針對同樣情況做過處理 是否有哪個Intent或function關鍵字 是針對這種情況做處理的 請求大大們分享了 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.146.195.238 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1423013807.A.975.html
ssccg: 你是說他有wifi,但是那個wifi沒連internet? 02/04 09:53
erttyy8821: 1.ping 2.follow systemUI 3.set connect timeout 02/04 09:56
COOLOD: s大 是的 02/04 11:20
COOLOD: e大的第2項 稍微有點不解 稍微爬一下文 是指判斷StatusBar 02/04 11:31
COOLOD: 去判斷 是否連線正常嗎? 情況對平板來說連線圖示沒有改變 02/04 11:34
COOLOD: 感謝大大提供 我先針對1 3做嘗試 02/04 11:34
erttyy8821: 看起來沒變不代表沒變 02/04 14:05
erttyy8821: 不過2.的做法算比較偷吃步 02/04 14:06
erttyy8821: 遇到特殊的devices可能會有問題 02/04 14:06
MrJerome: 照你的案例來看,建議不要從[連線狀態]進行判斷 02/04 19:24
MrJerome: 改從判斷[檔案是否完成] 02/04 19:25