【发布时间】:2019-12-09 10:00:15
【问题描述】:
我使用广播接收器来检测 wifi 连接。它成功地适用于 android Lolipop。但是当我尝试使用 Pie(android 9) 时它不起作用。我在AndroidManifest.xml中注册了这个广播如下。
<receiver android:name=".ExampleBroadcast">
<intent-filter>
<action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
示例广播是我扩展广播接收器的类。它的工作原理如下。
package com.example.myapplication;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.widget.Toast;
public class ExampleBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//required task
}
}
以上代码适用于 android 5,不支持 android Pie。我想知道正确的注册标准是什么,以及 android.net.conn.CONNECTIVITY_CHANGE 在 android 7 中的兼容操作是什么。
【问题讨论】:
标签: android broadcastreceiver android-manifest android-wifi