android - Wifi 扫描结果未广播

标签 android android-emulator android-wifi android-broadcast

我正在尝试开始扫描可用 Wifi,并在扫描完成后立即触发广播接收器。

我首先在我的 list 中添加权限并声明接收者:

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

...

<receiver android:name=".WifiReceiver">   
    <intent-filter>
        <action android:name="android.net.wifi.SCAN_RESULTS" />
    </intent-filter>
</receiver>

在我的 MainActivityonCreate 中,我启动了扫描:

// Get wifi points
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifiManager.startScan();
Log.i("WIFI_SCAN", "STARTED SCAN");

最后是我的 WifiReceiver 类:

class WifiReceiver extends BroadcastReceiver {

    public void onReceive(Context context, Intent intent) {
        Log.i("WIFI_SCAN", "RESULTS RECEIVED");
    }

}

我没有收到任何错误,并且显示了我的第一个 Log (STARTED SCAN),但我从未收到 RESULTS RECEIVED日志。

我不明白为什么我的 BroadcastReceiver 没有收到任何东西

最佳答案

您的BroadcastReceiver 必须是公开的。

class WifiReceiver extends BroadcastReceiver {

应该是

public class WifiReceiver extends BroadcastReceiver {

关于android - Wifi 扫描结果未广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26106576/

相关文章:

对于配备 Retina 显示屏的 Mac Book Pro,Android 模拟器无法缩放到 100%

android - 在android中的RTL和LTR之间切换

c# - MVVX无法从MvxDefaultViewModelLocator初始化ViewModel

android - 使用 Android 模拟器和浏览器放大时页面上的元素(即 a、div、h1)移动

java - 请提示Android WiFi Direct是否支持Multicast Socket通信

android - 用 wi-fi 连接两部安卓手机(不带笔记本电脑或接入点)并发送文件

java - Android:以编程方式打开WiFi热点

android - android项目中包含JAR会影响apk的大小吗

android - RxJava2 定时器和 combineLatest

android - 模拟全高清(1920×1080)安卓设备。最大分辨率蜂窝运行?