-1

私はAndroid携帯で正常に動作するアプリを持っていますが、携帯がないNexus7で実行しようとすると、指定された場所で強制停止してコードが失敗します。解決策は何ですか?機能が存在するかどうかを確認するにはどうすればよいですか?これを解決するにはどうすればよいですか?

  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
4

4 に答える 4

4

networkInfoはおそらくnullです。前にそれをテストする必要があります。これは、このタイプのconnectivityManagerにアクセスできないことを意味します。

これを試して:

networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

boolean isMobileConn = false;
if(networkInfo != null)
    isMobileConn = networkInfo.isConnected();  
于 2012-07-23T12:00:53.270 に答える
2

Motorola XoomにはConnectivityManager.TYPE_MOBILEの接続サポートがないため、同じ問題が発生しました。

次のコードは私にとってはうまく機能しています:

ConnectivityManager connMngr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
try {
    return connMngr.getActiveNetworkInfo().isConnected();
}
catch (NullPointerException npe) {
    return false;
}
于 2012-11-19T14:04:29.507 に答える
0

コードを次のように修正しました。

IsAPhone=0;
try{
    boolean isMobileConn = false;
    if(networkInfo != null){ isMobileConn = networkInfo.isConnected();IsAPhone=1;}  
   }
catch (Exception e) {}
于 2012-07-23T12:21:21.030 に答える
0

AndroidManifest.xmlで権限を確認してください

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
 <user-permission android:name="android.permission.ACCESS_WIFI_STATE" />
于 2012-07-23T11:58:26.330 に答える