我正在尝试构建一个应用,该应用会在wifi状态更改时创建通知

时间:2019-03-26 21:49:38

标签: java android notifications

我正在构建一个在建立wifi连接时发送通知的应用程序。由于我使用的是android 9,因此无法在AndroidManifest.xml中设置意图过滤器。

我创建了一个自定义的BroadcastReceiver,它创建了一个通知,并且如果我在onCreate中注册接收器,它也可以工作。

这是onCreate中代码的registerReceiver部分(在打开应用程序时有效)

receiver = new WifiStateReceiver();
IntentFilter filter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION);
registerReceiver(receiver, filter);

这是我的BroadcastReceiver:

public class WifiStateReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i("TEST", "IT WORKS!");
    }
}

这是我的AndroidManifest.xml

.
.
.

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
.
.
.
        <receiver
            android:name=".WifiStateReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="android.net.wifi.STATE_CHANGE"/>
            </intent-filter>
        </receiver>

.
.
.

关闭我的应用程序后,此功能不再起作用。因此,我需要某种永不关闭的服务,但不确定这种方法的电池效率如何。 wifi连接/状态更改时,有没有办法运行服务?正如我已经说过的那样,将意图过滤器放入AndroidManifest似乎不起作用,因为我正在使用android 9。

0 个答案:

没有答案