0
マニフェストは:android.net.wifi.STATE_CHANGE無線LANが有効になって取得したときに、放送とWifiManager.EXTRA_WIFI_STATEない利用できない
<receiver android:name=".triggers.WifiTrigger">
<intent-filter>
<action android:name="android.net.wifi.STATE_CHANGE" />
</intent-filter>
</receiver>
権限:無線LANがあるとき
<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が有効になっている場合は起動されません。また、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(...,...)
}
...
}
、それは(WifiManager.WIFI_STATE_UNKNOWN 4)p4
c4
をログに記録し続け
'Wi-Fiが有効になっているとき、接続されているとき、または接続されていないときに実行されます(接続/無効/有効になっていないかどうかをチェックしませんでしたが、Wi-Fiが有効なときには起動されません)。これら?そうでなければ、それは矛盾しており、何が問題なのかは明らかではありません。 – kcoppock
はい、ちょうど修正しました –