0

我正在编写一个需要接收 wifi 状态修改的应用程序。为此,我编写了一个类 TestReceiver,它扩展了 BroadcastReceiver,现在在 Log.i 上编写。接收器已通过 AndroidManifest 注册:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.lazooo.wifi_finder_service">
<uses-sdk android:minSdkVersion="14"/>
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <user-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <user-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <receiver android:name=".TestReceiver">
        <intent-filter>
            <action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
            <action android:name="android.net.wifi.STATE_CHANGE"/>
        </intent-filter>
    </receiver>
</application>

我的 TestReceiver 是:

package com.lazooo.wifi_finder_service;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;

public class TestReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    Log.i("BroadcastApplication", "ricevuto capo");
    Toast.makeText(context, "ciao", Toast.LENGTH_LONG).show();
}
}

问题是它不起作用,当我打开/关闭 wifi 时它什么也不做。我错过了什么?

4

1 回答 1

0

调试并查看是否正在发送任何内容。如果发送正常但您仍然没有收到消息,我的经验是使用 wifi,可能会出现防火墙问题并且没有收到消息。任何类型的通知似乎都更适合数据连接。

于 2013-08-27T20:36:10.283 回答