Java 广播接收器Wifi已禁用

Java 广播接收器Wifi已禁用,java,android,broadcastreceiver,android-broadcast,Java,Android,Broadcastreceiver,Android Broadcast,我希望我的应用程序在wifi“离线”时发出通知 我找到了通知部分。但我似乎无法理解“wifi检查”部分。 我读了一些关于广播接收器的东西,但我似乎无法让它工作。有什么有用的链接吗?还是示例代码?教程 提前谢谢 用代码更新。它的工作,但我需要它只给一个通知时,wifi离线 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) {

我希望我的应用程序在wifi“离线”时发出通知

我找到了通知部分。但我似乎无法理解“wifi检查”部分。 我读了一些关于广播接收器的东西,但我似乎无法让它工作。有什么有用的链接吗?还是示例代码?教程

提前谢谢

用代码更新。它的工作,但我需要它只给一个通知时,wifi离线

    public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {        

    super.onCreate(savedInstanceState);  
    this.registerReceiver(this.mConnReceiver,
            new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
    setContentView(R.layout.activity_main);
}

private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {
        boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
        String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
        boolean isFailover = intent.getBooleanExtra(ConnectivityManager.EXTRA_IS_FAILOVER, false);

        NetworkInfo currentNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
        NetworkInfo otherNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);

        if(currentNetworkInfo.isConnected()){

        }else{
            showNotification();
        }
    }
};

你可以试试这样的

In Manifest.xml
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

In your application Code:

public class BroadCastSampleActivity extends Activity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.registerReceiver(this.mConnReceiver,
            new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
}

private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {
        boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
        String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
        boolean isFailover = intent.getBooleanExtra(ConnectivityManager.EXTRA_IS_FAILOVER, false);

        NetworkInfo currentNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
        NetworkInfo otherNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);

        if(currentNetworkInfo.isConnected()){
            Toast.makeText(getApplicationContext(), "Connected", Toast.LENGTH_LONG).show();
        }else{
            Toast.makeText(getApplicationContext(), "Not Connected", Toast.LENGTH_LONG).show();
        }
    }
};
}
Manifest.xml中的

在应用程序代码中:
公共类BroadCastSampleActivity扩展活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.registerReceiver(this.mConnReceiver,
新的IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
}
private BroadcastReceiver mConnReceiver=新的BroadcastReceiver(){
公共void onReceive(上下文、意图){
boolean noConnectivity=intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY,false);
字符串原因=intent.getStringExtra(ConnectionManager.EXTRA_原因);
布尔值isFailover=intent.getBooleanExtra(ConnectivityManager.EXTRA_是_故障转移,false);
NetworkInfo currentNetworkInfo=(NetworkInfo)intent.getParcelableExtra(ConnectivityManager.EXTRA\u NETWORK\u INFO);
NetworkInfo otherNetworkInfo=(NetworkInfo)intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);
如果(currentNetworkInfo.isConnected()){
Toast.makeText(getApplicationContext(),“Connected”,Toast.LENGTH_LONG.show();
}否则{
Toast.makeText(getApplicationContext(),“未连接”,Toast.LENGTH_LONG.show();
}
}
};
}

谢谢!我认为这只是为网络连接指定的。我需要它只对wifi连接做出反应。有什么建议吗?设置wifi连接时,该代码将发出通知。我想这是你最初的问题,它工作不正常。它会在启动时以及wifi连接更改为打开或关闭时发出通知。我将在startpost中添加代码。我只需要在wifi关闭时发出通知。这是我没有看到的问题的副本。不管怎样,我更新了我的问题,我想现在不同了,哈哈。然后你需要开始一个新的线程。