2012-02-24 17 views
0

我有一個電話狀態監聽器。我監聽服務狀態,呼叫狀態和信號強度變化。這一切都很好。Android:如何確定應用程序是否以無信號或無服務啓動?

但是...

如果我的申請開始在沒有信號強度的情況下,有沒有「變」,我沒有得到通知。因此,我不能確定我是否沒有信號。

有沒有辦法主動要求/確定天氣或不我有一個信號或網絡服務(不是互聯網)上STARTUP?

+0

通過網絡服務我的意思是撥打電話,沒有WiFi或什麼「扣除相關的能力。 – 2012-02-24 15:55:33

+2

在此處使用NetworkStateTracker和ConnectivityManager示例http://www.devdaily.com/java/jwarehouse/android/services/java/com/android/server/ConnectivityService.java.shtml – 2012-02-24 16:00:50

+0

我無法使用第三方應用程序或API。 :( – 2012-02-24 16:03:36

回答

1
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
if (connectivityManager != null && connectivityManager.getActiveNetworkInfo() != null) 
{ 
     // Network is available 
} 
else 
{ 
     // No connection available. 
} 

更新:

您還需要權限:

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

UPDATE2

看起來像有與connectivityManager問題,所以它不是100%可靠: http://code.google.com/p/android/issues/detail?id=11588

http://code.google.com/p/android/issues/detail?id=11891

http://code.google.com/p/android/issues/detail?id=11866

+1

這是不正確的。我的網絡返回null(我不是互聯網上的),但我有信號力量與可撥打電話。以上是不正確的方式Ÿ歐認爲它是。 – 2012-02-24 18:24:03

+0

我使用該權限。 – 2012-02-24 18:29:36

+0

下面是getAllNetworkInfoR回報給我的信息。 15種網絡類型,全部斷開連接。 \ n nwi length = 15 類型:0連接=假 類型:1連接=假 類型:2連接=假 類型:3是連接=假連接=假 類型:4連接=假 類型:5連接=假 類型:10連接=假 類型:11連接=假 類型:12連接=假 類型:13連接=假 類型:15連接=假 類型:16連接=假 類型:17連接=假 – 2012-02-24 18:40:17

相關問題