<receiver android:name=".triggers.WifiTrigger">
<intent-filter>
<action android:name="android.net.wifi.STATE_CHANGE" />
</intent-filter>
</receiver>
Права доступа:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
Приемник выполнен, когда WiFi является отключен, подключен или отключен (не проверял подключение/отключение/включение), но он не запускается, когда включен WiFi, кроме того, WifiManager.EXTRA_WIFI_STATE
дополнительно недоступно в намерении, я использую usin г это:
public class WifiTrigger extends BroadcastReceiver {
...
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences preferences= PreferenceManager.getDefaultSharedPreferences(context);
int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN);
int previousWifiState = intent.getIntExtra(WifiManager.EXTRA_PREVIOUS_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN);
log("p"+previousWifiState);
log("c"+wifiState);
//log is a defined method used for logging (it just calls Log.d(...,...)
}
...
}
и он держит вход p4
c4
(4 для WifiManager.WIFI_STATE_UNKNOWN)
'выполняется, когда Wi-Fi включен, подключен или отключен (не проверял подключение/отключение/включение), но он не запускается при включенном Wi-Fi'. Я предполагаю, что вы имели в виду« отключено »для одного из эти? В противном случае это противоречиво, и неясно, в чем проблема. – kcoppock
да точно, я только что исправил его –