我在使用BroadCast接收器檢查Wi-Fi狀態時遇到了一些麻煩。能否請你幫忙?無法收聽android wi-fi管理器的狀態?
這是我的清單文件。
<uses-permission android:name="android.permission.READ_PHONE_STATE"> </uses-permission>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"> </uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"> </uses-permission>
<uses-permission android:name="android.permission.INTERNET"> </uses-permission>
<application
android:icon="@drawable/icon"
android:label="@string/app_name">
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".MainActivity">
<intent-filter android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
</receiver>
</application>
</manifest>
這是MainActivity.java
public class MainActivity extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int state = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, -1);
String msg = null;
switch (state) {
case WifiManager.WIFI_STATE_DISABLED:
msg = "it is disabled";
break;
case WifiManager.WIFI_STATE_ENABLED:
msg = "it is enabled";
break;
case WifiManager.WIFI_STATE_DISABLING:
msg = "it is switching off";
break;
case WifiManager.WIFI_STATE_ENABLING:
msg = "wifi is getting enabled";
break;
default:
msg = "not working properly";
break;
}
if (msg != null) {
Log.d("************%%%%%%%%wifi state ", "WIFI" + msg);
Toast.makeText(context, "Wifi state is" + msg, Toast.LENGTH_LONG)
.show();
}
}
}
我不確定我在哪裏做我的錯誤。任何輸入將不勝感激。
我沒有收到任何錯誤,只是日誌文件沒有顯示所需的消息。
嗨,我已經添加了清單的權限。現在應用程序意外關閉。在提到日誌時,它表示「未捕獲的處理程序,由於未捕獲的異常導致主線程退出」,「java.lang.RuntimeException。無法實例化活動」。請讓我知道問題在哪裏出現。謝謝 – Vinoth