2

次のコードを使用して、WiFi スキャナーの現在の状態を取得しようとしました。

ConnectivityManager manager = (ConnectivityManager)getSystemService(MainActivity.CONNECTIVITY_SERVICE);

 State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();

残念ながら、2 行目でアプリを実行するとアプリがクラッシュします。行をコメント化すると、アプリを問題なく実行できます。この部分は、このアプリにとって非常に重要です。これがないと、残りのコードを進めることができません。エミュレーター (Android バージョン: 4.2.2 API レベル 17) および ICS 4.0.4 (API レベル 15) を実行している Xperia でもクラッシュします。最低限必要な API レベルは 8 に設定されています。コードにエラーはありません。

編集: 機能するのは: 代替コード:

最終的な WifiManager wifiManagerI = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);

boolean wifiEnabledI = wifiManagerI.isWifiEnabled();

4

1 に答える 1

7

ログがなければ、パーミッションを追加するのを忘れていたと思います。

<user-permission android:name="android.permission.ACCESS_WIFI_STATE" />

編集:このコードで問題が修正されました。

final WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
boolean wifiEnabled =   wifiManager.isWifiEnabled();
于 2013-03-28T19:21:32.907 に答える