[問題] Wifi連線能力問題請益

看板AndroidDev作者 (看八卦 認真你就輸了)時間11年前 (2015/02/04 09:36), 編輯推噓1(1010)
留言11則, 4人參與, 最新討論串1/1
各位大大好 小弟最近再做有關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

02/04 09:53, , 1F
你是說他有wifi,但是那個wifi沒連internet?
02/04 09:53, 1F

02/04 09:56, , 2F
1.ping 2.follow systemUI 3.set connect timeout
02/04 09:56, 2F

02/04 11:20, , 3F
s大 是的
02/04 11:20, 3F

02/04 11:31, , 4F
e大的第2項 稍微有點不解 稍微爬一下文 是指判斷StatusBar
02/04 11:31, 4F

02/04 11:34, , 5F
去判斷 是否連線正常嗎? 情況對平板來說連線圖示沒有改變
02/04 11:34, 5F

02/04 11:34, , 6F
感謝大大提供 我先針對1 3做嘗試
02/04 11:34, 6F

02/04 14:05, , 7F
看起來沒變不代表沒變
02/04 14:05, 7F

02/04 14:06, , 8F
不過2.的做法算比較偷吃步
02/04 14:06, 8F

02/04 14:06, , 9F
遇到特殊的devices可能會有問題
02/04 14:06, 9F

02/04 19:24, , 10F
照你的案例來看,建議不要從[連線狀態]進行判斷
02/04 19:24, 10F

02/04 19:25, , 11F
改從判斷[檔案是否完成]
02/04 19:25, 11F
文章代碼(AID): #1KqNUlbr (AndroidDev)