通過手機支持的任何方法,即GSM或CDMA(不是SIP)。我嘗試過使用ConnectivityManager,但TYPE_MOBILE的NetworkInfo似乎返回了!連接到WiFi時IsConnected,儘管我有一個完整的信號。如何檢查我是否可以撥打電話?
我想知道是否可以打電話,所以我猜想TelephonyManager.getDataState不合適。
我的回答
(不能張貼另外7小時)
看來我是在正確的地方,只是不太確認正確的方法。實際上,似乎只有一個TYPE_連接(即TYPE_MOBILE,TYPE_WIFI)會返回IsConnected(),所以我應該檢查連接是否是IsAvailable()。我在移動數據啓用和禁用的情況下對此進行了測試,並且在兩種情況下都給出了正確的結果(即:當我有移動信號時爲true,當我沒有時爲false,無論移動數據是否啓用)。
注意:要禁用移動數據,在ICS轉到設置 - >無線&網絡 - >更多 - >移動網絡 - >數據啓用(取消選擇它)。
SIMSTATE = {SIM_STATE_ABSENT,SIM_STATE_NETWORK_LOCKED,SIM_STATE_PIN_REQUIRED, SIM_STATE_PUK_REQUIRED,SIM_STATE_READY, SIM_STATE_UNKNOWN。 – pjcard 2012-04-23 04:59:58
對不起,我討厭按Enter鍵發送評論,並沒有添加一行。我的意思是說,沒有人會告訴我是否有移動信號。 – pjcard 2012-04-23 05:00:49
好的,你自己找到了解決方案。 – Niko 2012-04-23 05:21:16