2012-07-23 33 views
-1

我有一個應用程序,可以在Android手機上正常工作,但是當我嘗試在沒有手機的Nexus7上運行時,代碼失敗,表示。解決辦法是什麼?如何檢查功能是否存在,以及我該如何解決這個問題?在AndroidManifest.xml安卓平板電腦沒有電話和代碼給出錯誤時檢查

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<user-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
+0

粘貼您的logcat這裏將幫助我們迅速解決問題。 – pixelscreen 2012-07-23 12:00:45

回答

4

你NETWORKINFO

ConnectivityManager connMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
    boolean isWifiConn = networkInfo.isConnected(); 
    printi("oopsA",6); 
    networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
    printi("oopsB",6); 
    boolean isMobileConn = networkInfo.isConnected(); //<<<<FAILS HERE ON NEXUS 7 
0

檢查權限可能是零。你必須先測試一下。這意味着你不能訪問這種類型的connectivityManager。

試試這個:

networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 

boolean isMobileConn = false; 
if(networkInfo != null) 
    isMobileConn = networkInfo.isConnected(); 
+0

「我有一款可在Android手機上正常工作的應用程序」。這不能歸因於權限 – AMerle 2012-07-23 12:02:43

0

更正後的代碼如下:

IsAPhone=0; 
try{ 
    boolean isMobileConn = false; 
    if(networkInfo != null){ isMobileConn = networkInfo.isConnected();IsAPhone=1;} 
    } 
catch (Exception e) {} 
2

我都面臨着同樣的問題與摩托羅拉XOOM,因爲它不具備ConnectivityManager.TYPE_MOBILE連接的支持。

下面的代碼是工作的罰款對我來說:

ConnectivityManager connMngr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
try { 
    return connMngr.getActiveNetworkInfo().isConnected(); 
} 
catch (NullPointerException npe) { 
    return false; 
}